Added Dispo URL Filter feature

git-svn-id: svn://192.168.202.10@2964 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2018-04-12 03:19:07 +00:00
parent ca63db9d8f
commit 6ce8ceeb2f
4 changed files with 235 additions and 25 deletions
+3
View File
@@ -298,6 +298,9 @@ OTHER CHANGES:
their agent screen. Manager approves by entering their login credentials their agent screen. Manager approves by entering their login credentials
into a window on the agent's screen. into a window on the agent's screen.
80. Added DISPO_FILTER Settings Container option allowing for match-and-replace
function in Dispo Call URLs. See CALL_URL_FEATURES.txt doc for details.
+73 -12
View File
@@ -5,6 +5,9 @@ Call URL features(start call url, dispo call url, etc...)
Details on the Call URL and webform-type fields and dynamic URL construction: Details on the Call URL and webform-type fields and dynamic URL construction:
################################################################################
# WEB FORM
################################################################################
Web Form - This is where you can set the custom web page that will be Web Form - This is where you can set the custom web page that will be
opened when the user clicks on the WEB FORM button. To customize the opened when the user clicks on the WEB FORM button. To customize the
@@ -27,6 +30,10 @@ http://10.0.1.2:8080/agc/test.php. This allows you to still use absolute links
in both webforms and script IFRAMES to avoid issues with using relative links. in both webforms and script IFRAMES to avoid issues with using relative links.
################################################################################
# START CALL URL
################################################################################
Start Call URL - This web URL address is not seen by the agent, but Start Call URL - This web URL address is not seen by the agent, but
it is called every time a call is sent to an agent if it is populated. it is called every time a call is sent to an agent if it is populated.
Uses the same variables as the web form fields and scripts. This URL Uses the same variables as the web form fields and scripts. This URL
@@ -34,17 +41,50 @@ can NOT be a relative path. The Start URL does not work for Manual
dial calls. Default is blank. dial calls. Default is blank.
################################################################################
# DISPO CALL URL
################################################################################
Dispo Call URL - This web URL address is not seen by the agent, but it Dispo Call URL - This web URL address is not seen by the agent, but it
is called every time a call is dispositioned by an agent if it is is called every time a call is dispositioned by an agent if it is
populated. Uses the same variables as the web form fields and scripts. populated. Uses the same variables as the web form fields and scripts.
dispo, talk_time, call_notes, callback_lead_status and callback_datetime are the
extra variables you can use with this specific function. 'dispo' is the actual
agent-defined status disposition for the call, callback_lead_status is the
agent-selected status when a scheduled callback status has been selected by the
agent, and callback_datetime is the agent selected date and time for a callback.
The actual talk time in seconds of the call is talk_time. This URL can NOT be a
relative path. It is always called from the webserver. Default is blank.
You can set the Dispo Call URL on a per-campaign and per-in-group basis. You can
also set more than one Dispo Call URL by entering "ALT" into the Dispo Call URL
field for a campaign or in-groupand submitting the page, then a link to a new
page will be shown where you can go to configure many Dispo Call URLs. In this
Alternate dispo URL page, you will have additional options, like being able to
specify that the URL be called only for specific statuses or specific lists.
These are the extra variables you can use with this specific function:
- 'dispo' is the actual agent-defined status disposition for the call
- 'talk_time' is the actual talk time in seconds of the call
- 'call_notes' is the agent-entered call notes for the call, if enabled
- 'callback_lead_status' is the agent-selected status when a scheduled callback
status has been selected by the agent
- 'callback_datetime' is the agent selected date and time for a callback
With Dispo Call URLs you can also use a DISPO_FILTER Settings Container to
define replacements for specific field values before they are sent out. For
example, you can replace a blank 'state' field with 'NA' when sending out the
Dispo Call URL that contains --A--state--B-- in it, just by including the
following line in a DISPO_FILTER settings container: "state,,NA". The second
field is case-sensitive, so of you want to allow for a matching 'state' in both
upper case and lower case you would need to include four lines in your settings
container: "state,MC,MI", "state,mc,MI", "state,mC,MI", "state,Mc,MI"
The above example would change a 'state' of "MC" to "MI" in the Dispo Call URL.
To enable this feature for a Dispo Call URL, just include
'dispo_filter_container=' in your URL with the Settings Container ID at the end:
"&dispo_filter_container=TEST_NA"
The Dispo Call URL can NOT be a relative path, it must be an absolute URL
The Dispo Call URL is always called from the webserver.
Default is blank.
################################################################################
# ADD LEAD URL
################################################################################
Add Lead URL - This web URL address is not seen by the agent, but it is called Add Lead URL - This web URL address is not seen by the agent, but it is called
every time a lead is added to the system through the inbound process. Default every time a lead is added to the system through the inbound process. Default
@@ -56,6 +96,10 @@ did_extension, did_pattern, did_description, uniqueid, call_id. This feature is
only available for In-Groups. only available for In-Groups.
################################################################################
# NO AGENT CALL URL
################################################################################
No Agent Call URL - This is similar to Dispo Call URL, but it is for calls No Agent Call URL - This is similar to Dispo Call URL, but it is for calls
that are not sent to agents such as DROPs, No Answers, Busys and timeouts. This that are not sent to agents such as DROPs, No Answers, Busys and timeouts. This
option is available for Campaigns and In-Groups. This feature will only work for option is available for Campaigns and In-Groups. This feature will only work for
@@ -64,6 +108,10 @@ specific in-group that a call was sent to needs to have the No Agent Call URL
field filled in or this function will not run for that call. field filled in or this function will not run for that call.
################################################################################
# CRM POPUP LOGIN/ADDRESS
################################################################################
CRM Popup Login - If set to Y, the CRM Popup Address is used to open a new CRM Popup Login - If set to Y, the CRM Popup Address is used to open a new
window on agent login to this campaign. Default is N. window on agent login to this campaign. Default is N.
@@ -75,6 +123,10 @@ populated just like the web form address, with the VAR in the front and using
################################################################################
# AVAILABLE FIELDS
################################################################################
You can have lead information be auto-populated in the URL You can have lead information be auto-populated in the URL
options(webform, webform2, start_call_url, dispo_call_url, crm_popup_url) using options(webform, webform2, start_call_url, dispo_call_url, crm_popup_url) using
"--A--field--B--" where field is one of the following fieldnames: "--A--field--B--" where field is one of the following fieldnames:
@@ -89,12 +141,21 @@ group, channel_group, SQLdate, epoch, uniqueid, customer_zap_channel,
server_ip, SIPexten, session_id, dialed_number, dialed_label, rank, server_ip, SIPexten, session_id, dialed_number, dialed_label, rank,
owner, camp_script, in_script, script_width, script_height, owner, camp_script, in_script, script_width, script_height,
recording_filename, recording_id, user_custom_one, user_custom_two, recording_filename, recording_id, user_custom_one, user_custom_two,
user_custom_three, user_custom_four, user_custom_five, user_custom_three, user_custom_four, user_custom_five, list_description,
preset_number_a, preset_number_b, preset_number_c, preset_number_d, preset_number_a, preset_number_b, preset_number_c, preset_number_d, agent_email,
preset_number_e, preset_number_f, preset_dtmf_a, preset_dtmf_b, preset_number_e, preset_number_f, preset_dtmf_a, preset_dtmf_b, entry_date,
did_id, did_extension, did_pattern, did_description, closecallid, did_id, did_extension, did_pattern, did_description, closecallid, called_count,
xfercallid, agent_log_id, entry_list_id, call_id, user_group, list_name. xfercallid, agent_log_id, entry_list_id, call_id, user_group, list_name,
did_custom_one, did_custom_two, did_custom_three, did_custom_four,
did_custom_five
For most of the functions above, you can also reference custom list fields using
the standard --A-- and --B-- around the custom field ID
################################################################################
# EXAMPLES
################################################################################
For examples(and sample result URL): For examples(and sample result URL):
+154 -9
View File
@@ -452,13 +452,14 @@
# 180216-1350 - Fix for callback alt dial isssue #1066 # 180216-1350 - Fix for callback alt dial isssue #1066
# 180228-0726 - Fix for LogiNCamPaigns function, removed unnecesary onfocus trigger, issue #1074 # 180228-0726 - Fix for LogiNCamPaigns function, removed unnecesary onfocus trigger, issue #1074
# 180410-1630 - Added Pause Code manager approval feature, Added switch_lead logging # 180410-1630 - Added Pause Code manager approval feature, Added switch_lead logging
# 180411-1833 - Added Dispo URL Filter feature
# #
$version = '2.14-346'; $version = '2.14-347';
$build = '180410-1630'; $build = '180411-1833';
$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=712; $mysql_log_count=719;
$one_mysql_log=0; $one_mysql_log=0;
$DB=0; $DB=0;
$VD_login=0; $VD_login=0;
@@ -4272,7 +4273,7 @@ if ($ACTION == 'manDiaLnextCaLL')
{ {
$stmt = "SELECT cid_group_type FROM vicidial_cid_groups where cid_group_id='$cid_group_id';"; $stmt = "SELECT cid_group_type FROM vicidial_cid_groups where cid_group_id='$cid_group_id';";
$rslt=mysql_to_mysqli($stmt, $link); $rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00714',$user,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$cidg_ct = mysqli_num_rows($rslt); $cidg_ct = mysqli_num_rows($rslt);
if ($cidg_ct > 0) if ($cidg_ct > 0)
@@ -4296,7 +4297,7 @@ if ($ACTION == 'manDiaLnextCaLL')
$stmt = "SELECT outbound_cid,areacode FROM vicidial_campaign_cid_areacodes where campaign_id='$cid_group_id' and areacode IN('$temp_state') and active='Y' order by call_count_today desc limit 100000;"; $stmt = "SELECT outbound_cid,areacode FROM vicidial_campaign_cid_areacodes where campaign_id='$cid_group_id' and areacode IN('$temp_state') and active='Y' order by call_count_today desc limit 100000;";
} }
$rslt=mysql_to_mysqli($stmt, $link); $rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00715',$user,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$vcca_ct = mysqli_num_rows($rslt); $vcca_ct = mysqli_num_rows($rslt);
$act=0; $act=0;
@@ -4312,7 +4313,7 @@ if ($ACTION == 'manDiaLnextCaLL')
$stmt="UPDATE vicidial_campaign_cid_areacodes set call_count_today=(call_count_today + 1) where campaign_id='$cid_group_id' and areacode='$temp_ac' and outbound_cid='$temp_vcca';"; $stmt="UPDATE vicidial_campaign_cid_areacodes set call_count_today=(call_count_today + 1) where campaign_id='$cid_group_id' and areacode='$temp_ac' and outbound_cid='$temp_vcca';";
if ($format=='debug') {echo "\n<!-- $stmt -->";} if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link); $rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00716',$user,$server_ip,$session_name,$one_mysql_log);}
} }
} }
$temp_CID = preg_replace("/\D/",'',$temp_vcca); $temp_CID = preg_replace("/\D/",'',$temp_vcca);
@@ -5617,7 +5618,7 @@ if ($ACTION == 'manDiaLonly')
{ {
$stmt = "SELECT cid_group_type FROM vicidial_cid_groups where cid_group_id='$cid_group_id';"; $stmt = "SELECT cid_group_type FROM vicidial_cid_groups where cid_group_id='$cid_group_id';";
$rslt=mysql_to_mysqli($stmt, $link); $rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00717',$user,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$cidg_ct = mysqli_num_rows($rslt); $cidg_ct = mysqli_num_rows($rslt);
if ($cidg_ct > 0) if ($cidg_ct > 0)
@@ -5641,7 +5642,7 @@ if ($ACTION == 'manDiaLonly')
$stmt = "SELECT outbound_cid,areacode FROM vicidial_campaign_cid_areacodes where campaign_id='$cid_group_id' and areacode IN('$temp_state') and active='Y' order by call_count_today desc limit 100000;"; $stmt = "SELECT outbound_cid,areacode FROM vicidial_campaign_cid_areacodes where campaign_id='$cid_group_id' and areacode IN('$temp_state') and active='Y' order by call_count_today desc limit 100000;";
} }
$rslt=mysql_to_mysqli($stmt, $link); $rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00718',$user,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$vcca_ct = mysqli_num_rows($rslt); $vcca_ct = mysqli_num_rows($rslt);
$act=0; $act=0;
@@ -5657,7 +5658,7 @@ if ($ACTION == 'manDiaLonly')
$stmt="UPDATE vicidial_campaign_cid_areacodes set call_count_today=(call_count_today + 1) where campaign_id='$cid_group_id' and areacode='$temp_ac' and outbound_cid='$temp_vcca';"; $stmt="UPDATE vicidial_campaign_cid_areacodes set call_count_today=(call_count_today + 1) where campaign_id='$cid_group_id' and areacode='$temp_ac' and outbound_cid='$temp_vcca';";
if ($format=='debug') {echo "\n<!-- $stmt -->";} if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link); $rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00719',$user,$server_ip,$session_name,$one_mysql_log);}
} }
} }
$temp_CID = preg_replace("/\D/",'',$temp_vcca); $temp_CID = preg_replace("/\D/",'',$temp_vcca);
@@ -12839,6 +12840,134 @@ if ($ACTION == 'updateDISPO')
} }
} }
##### Check for a dispo filter in the URL
$dispo_filter_enabled=0;
if (preg_match('/dispo_filter_container=/i',$dispo_call_urlARY[$j]))
{
$df_fields='|';
$temp_filter = explode('dispo_filter_container=',$dispo_call_urlARY[$j]);
$temp_filter[1] = preg_replace("/&.*/",'',$temp_filter[1]);
$filter_container = $temp_filter[1];
### Gather container entry (example: "first_name,,TEST")
$stmt = "SELECT container_entry from vicidial_settings_containers where container_id='$filter_container' limit 1;";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00713',$user,$server_ip,$session_name,$one_mysql_log);}
$VSC_ct = mysqli_num_rows($rslt);
if ($VSC_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$container_entry = $row[0];
if (strlen($container_entry) > 4)
{
$dispo_filter_enabled++;
$container_entry = preg_replace("/\r|\t/",'',$container_entry);
$dispo_filters = explode("\n",$container_entry);
$dispo_filters_ct = count($dispo_filters);
if ($DB) {echo "DF-Debug 1: $dispo_filters_ct|$dispo_filter_enabled|$container_entry|\n";}
$dct=0;
while ($dispo_filters_ct > $dct)
{
$temp_df = explode(',',$dispo_filters[$dct]);
$df_fields .= "$temp_df[0]|";
$lm=0;
if ( (preg_match("/^lead_id$/i",$temp_df[0])) and ($lead_id == $temp_df[1]) ) {$lead_id = $temp_df[2]; $lm++;}
if ( (preg_match("/^vendor_id$/i",$temp_df[0])) and ($vendor_id == $temp_df[1]) ) {$vendor_id = $temp_df[2]; $lm++;}
if ( (preg_match("/^vendor_lead_code$/i",$temp_df[0])) and ($vendor_lead_code == $temp_df[1]) ) {$vendor_lead_code = $temp_df[2]; $lm++;}
if ( (preg_match("/^list_id$/i",$temp_df[0])) and ($list_id == $temp_df[1]) ) {$list_id = $temp_df[2]; $lm++;}
if ( (preg_match("/^list_name$/i",$temp_df[0])) and ($list_name == $temp_df[1]) ) {$list_name = $temp_df[2]; $lm++;}
if ( (preg_match("/^list_description$/i",$temp_df[0])) and ($list_description == $temp_df[1]) ) {$list_description = $temp_df[2]; $lm++;}
if ( (preg_match("/^gmt_offset_now$/i",$temp_df[0])) and ($gmt_offset_now == $temp_df[1]) ) {$gmt_offset_now = $temp_df[2]; $lm++;}
if ( (preg_match("/^phone_code$/i",$temp_df[0])) and ($phone_code == $temp_df[1]) ) {$phone_code = $temp_df[2]; $lm++;}
if ( (preg_match("/^phone_number$/i",$temp_df[0])) and ($phone_number == $temp_df[1]) ) {$phone_number = $temp_df[2]; $lm++;}
if ( (preg_match("/^title$/i",$temp_df[0])) and ($title == $temp_df[1]) ) {$title = $temp_df[2]; $lm++;}
if ( (preg_match("/^first_name$/i",$temp_df[0])) and ($first_name == $temp_df[1]) ) {$first_name = $temp_df[2]; $lm++;}
if ( (preg_match("/^middle_initial$/i",$temp_df[0])) and ($middle_initial == $temp_df[1]) ) {$middle_initial = $temp_df[2]; $lm++;}
if ( (preg_match("/^last_name$/i",$temp_df[0])) and ($last_name == $temp_df[1]) ) {$last_name = $temp_df[2]; $lm++;}
if ( (preg_match("/^address1$/i",$temp_df[0])) and ($address1 == $temp_df[1]) ) {$address1 = $temp_df[2]; $lm++;}
if ( (preg_match("/^address2$/i",$temp_df[0])) and ($address2 == $temp_df[1]) ) {$address2 = $temp_df[2]; $lm++;}
if ( (preg_match("/^address3$/i",$temp_df[0])) and ($address3 == $temp_df[1]) ) {$address3 = $temp_df[2]; $lm++;}
if ( (preg_match("/^city$/i",$temp_df[0])) and ($city == $temp_df[1]) ) {$city = $temp_df[2]; $lm++;}
if ( (preg_match("/^state$/i",$temp_df[0])) and ($state == $temp_df[1]) ) {$state = $temp_df[2]; $lm++;}
if ( (preg_match("/^province$/i",$temp_df[0])) and ($province == $temp_df[1]) ) {$province = $temp_df[2]; $lm++;}
if ( (preg_match("/^postal_code$/i",$temp_df[0])) and ($postal_code == $temp_df[1]) ) {$postal_code = $temp_df[2]; $lm++;}
if ( (preg_match("/^country_code$/i",$temp_df[0])) and ($country_code == $temp_df[1]) ) {$country_code = $temp_df[2]; $lm++;}
if ( (preg_match("/^gender$/i",$temp_df[0])) and ($gender == $temp_df[1]) ) {$gender = $temp_df[2]; $lm++;}
if ( (preg_match("/^date_of_birth$/i",$temp_df[0])) and ($date_of_birth == $temp_df[1]) ) {$date_of_birth = $temp_df[2]; $lm++;}
if ( (preg_match("/^alt_phone$/i",$temp_df[0])) and ($alt_phone == $temp_df[1]) ) {$alt_phone = $temp_df[2]; $lm++;}
if ( (preg_match("/^email$/i",$temp_df[0])) and ($email == $temp_df[1]) ) {$email = $temp_df[2]; $lm++;}
if ( (preg_match("/^security_phrase$/i",$temp_df[0])) and ($security_phrase == $temp_df[1]) ) {$security_phrase = $temp_df[2]; $lm++;}
if ( (preg_match("/^comments$/i",$temp_df[0])) and ($comments == $temp_df[1]) ) {$comments = $temp_df[2]; $lm++;}
if ( (preg_match("/^user$|^closer$/i",$temp_df[0])) and ($user == $temp_df[1]) ) {$user = $temp_df[2]; $lm++;}
if ( (preg_match("/^pass$/i",$temp_df[0])) and ($orig_pass == $temp_df[1]) ) {$orig_pass = $temp_df[2]; $lm++;}
if ( (preg_match("/^campaign$/i",$temp_df[0])) and ($campaign == $temp_df[1]) ) {$campaign = $temp_df[2]; $lm++;}
if ( (preg_match("/^phone_login$/i",$temp_df[0])) and ($phone_login == $temp_df[1]) ) {$phone_login = $temp_df[2]; $lm++;}
if ( (preg_match("/^original_phone_login$/i",$temp_df[0])) and ($original_phone_login == $temp_df[1]) ) {$original_phone_login = $temp_df[2]; $lm++;}
if ( (preg_match("/^phone_pass$/i",$temp_df[0])) and ($phone_pass == $temp_df[1]) ) {$phone_pass = $temp_df[2]; $lm++;}
if ( (preg_match("/^fronter$/i",$temp_df[0])) and ($fronter == $temp_df[1]) ) {$fronter = $temp_df[2]; $lm++;}
if ( (preg_match("/^group$|^channel_group$/i",$temp_df[0])) and ($VDADchannel_group == $temp_df[1]) ) {$VDADchannel_group = $temp_df[2]; $lm++;}
if ( (preg_match("/^SQLdate$/i",$temp_df[0])) and ($SQLdate == $temp_df[1]) ) {$SQLdate = $temp_df[2]; $lm++;}
if ( (preg_match("/^epoch$/i",$temp_df[0])) and ($epoch == $temp_df[1]) ) {$epoch = $temp_df[2]; $lm++;}
if ( (preg_match("/^uniqueid$/i",$temp_df[0])) and ($uniqueid == $temp_df[1]) ) {$uniqueid = $temp_df[2]; $lm++;}
if ( (preg_match("/^customer_zap_channel$/i",$temp_df[0])) and ($customer_zap_channel == $temp_df[1]) ) {$customer_zap_channel = $temp_df[2]; $lm++;}
if ( (preg_match("/^customer_server_ip$/i",$temp_df[0])) and ($customer_server_ip == $temp_df[1]) ) {$customer_server_ip = $temp_df[2]; $lm++;}
if ( (preg_match("/^server_ip$/i",$temp_df[0])) and ($server_ip == $temp_df[1]) ) {$server_ip = $temp_df[2]; $lm++;}
if ( (preg_match("/^SIPexten$/i",$temp_df[0])) and ($exten == $temp_df[1]) ) {$exten = $temp_df[2]; $lm++;}
if ( (preg_match("/^session_id$/i",$temp_df[0])) and ($conf_exten == $temp_df[1]) ) {$conf_exten = $temp_df[2]; $lm++;}
if ( (preg_match("/^phone$/i",$temp_df[0])) and ($phone_number == $temp_df[1]) ) {$phone_number = $temp_df[2]; $lm++;}
if ( (preg_match("/^parked_by$/i",$temp_df[0])) and ($parked_by == $temp_df[1]) ) {$parked_by = $temp_df[2]; $lm++;}
if ( (preg_match("/^dispo$/i",$temp_df[0])) and ($dispo == $temp_df[1]) ) {$dispo = $temp_df[2]; $lm++;}
if ( (preg_match("/^dispo_name$/i",$temp_df[0])) and ($dispo_name == $temp_df[1]) ) {$dispo_name = $temp_df[2]; $lm++;}
if ( (preg_match("/^dialed_number$/i",$temp_df[0])) and ($dialed_number == $temp_df[1]) ) {$dialed_number = $temp_df[2]; $lm++;}
if ( (preg_match("/^dialed_label$/i",$temp_df[0])) and ($dialed_label == $temp_df[1]) ) {$dialed_label = $temp_df[2]; $lm++;}
if ( (preg_match("/^source_id$/i",$temp_df[0])) and ($source_id == $temp_df[1]) ) {$source_id = $temp_df[2]; $lm++;}
if ( (preg_match("/^rank$/i",$temp_df[0])) and ($rank == $temp_df[1]) ) {$rank = $temp_df[2]; $lm++;}
if ( (preg_match("/^owner$/i",$temp_df[0])) and ($owner == $temp_df[1]) ) {$owner = $temp_df[2]; $lm++;}
if ( (preg_match("/^camp_script$/i",$temp_df[0])) and ($camp_script == $temp_df[1]) ) {$camp_script = $temp_df[2]; $lm++;}
if ( (preg_match("/^in_script$/i",$temp_df[0])) and ($in_script == $temp_df[1]) ) {$in_script = $temp_df[2]; $lm++;}
if ( (preg_match("/^fullname$/i",$temp_df[0])) and ($fullname == $temp_df[1]) ) {$fullname = $temp_df[2]; $lm++;}
if ( (preg_match("/^user_custom_one$/i",$temp_df[0])) and ($user_custom_one == $temp_df[1]) ) {$user_custom_one = $temp_df[2]; $lm++;}
if ( (preg_match("/^user_custom_two$/i",$temp_df[0])) and ($user_custom_two == $temp_df[1]) ) {$user_custom_two = $temp_df[2]; $lm++;}
if ( (preg_match("/^user_custom_three$/i",$temp_df[0])) and ($user_custom_three == $temp_df[1]) ) {$user_custom_three = $temp_df[2]; $lm++;}
if ( (preg_match("/^user_custom_four$/i",$temp_df[0])) and ($user_custom_four == $temp_df[1]) ) {$user_custom_four = $temp_df[2]; $lm++;}
if ( (preg_match("/^user_custom_five$/i",$temp_df[0])) and ($user_custom_five == $temp_df[1]) ) {$user_custom_five = $temp_df[2]; $lm++;}
if ( (preg_match("/^talk_time$/i",$temp_df[0])) and ($talk_time == $temp_df[1]) ) {$talk_time = $temp_df[2]; $lm++;}
if ( (preg_match("/^talk_time_ms$/i",$temp_df[0])) and ($talk_time_ms == $temp_df[1]) ) {$talk_time_ms = $temp_df[2]; $lm++;}
if ( (preg_match("/^talk_time_min$/i",$temp_df[0])) and ($talk_time_min == $temp_df[1]) ) {$talk_time_min = $temp_df[2]; $lm++;}
if ( (preg_match("/^agent_log_id$/i",$temp_df[0])) and ($CALL_agent_log_id == $temp_df[1]) ) {$CALL_agent_log_id = $temp_df[2]; $lm++;}
if ( (preg_match("/^entry_list_id$/i",$temp_df[0])) and ($entry_list_id == $temp_df[1]) ) {$entry_list_id = $temp_df[2]; $lm++;}
if ( (preg_match("/^did_id$/i",$temp_df[0])) and ($DID_id == $temp_df[1]) ) {$DID_id = $temp_df[2]; $lm++;}
if ( (preg_match("/^did_extension$/i",$temp_df[0])) and ($DID_extension == $temp_df[1]) ) {$DID_extension = $temp_df[2]; $lm++;}
if ( (preg_match("/^did_pattern$/i",$temp_df[0])) and ($DID_pattern == $temp_df[1]) ) {$DID_pattern = $temp_df[2]; $lm++;}
if ( (preg_match("/^did_description$/i",$temp_df[0])) and ($DID_description == $temp_df[1]) ) {$DID_description = $temp_df[2]; $lm++;}
if ( (preg_match("/^closecallid$/i",$temp_df[0])) and ($INclosecallid == $temp_df[1]) ) {$INclosecallid = $temp_df[2]; $lm++;}
if ( (preg_match("/^xfercallid$/i",$temp_df[0])) and ($INxfercallid == $temp_df[1]) ) {$INxfercallid = $temp_df[2]; $lm++;}
if ( (preg_match("/^call_id$/i",$temp_df[0])) and ($MDnextCID == $temp_df[1]) ) {$MDnextCID = $temp_df[2]; $lm++;}
if ( (preg_match("/^user_group$/i",$temp_df[0])) and ($user_group == $temp_df[1]) ) {$user_group = $temp_df[2]; $lm++;}
if ( (preg_match("/^call_notes$/i",$temp_df[0])) and ($url_call_notes == $temp_df[1]) ) {$url_call_notes = $temp_df[2]; $lm++;}
if ( (preg_match("/^recording_id$/i",$temp_df[0])) and ($recording_id == $temp_df[1]) ) {$recording_id = $temp_df[2]; $lm++;}
if ( (preg_match("/^recording_filename$/i",$temp_df[0])) and ($recording_filename == $temp_df[1]) ) {$recording_filename = $temp_df[2]; $lm++;}
if ( (preg_match("/^entry_date$/i",$temp_df[0])) and ($entry_date == $temp_df[1]) ) {$entry_date = $temp_df[2]; $lm++;}
if ( (preg_match("/^did_custom_one$/i",$temp_df[0])) and ($DID_custom_one == $temp_df[1]) ) {$DID_custom_one = $temp_df[2]; $lm++;}
if ( (preg_match("/^did_custom_two$/i",$temp_df[0])) and ($DID_custom_two == $temp_df[1]) ) {$DID_custom_two = $temp_df[2]; $lm++;}
if ( (preg_match("/^did_custom_three$/i",$temp_df[0])) and ($DID_custom_three == $temp_df[1]) ) {$DID_custom_three = $temp_df[2]; $lm++;}
if ( (preg_match("/^did_custom_four$/i",$temp_df[0])) and ($DID_custom_four == $temp_df[1]) ) {$DID_custom_four = $temp_df[2]; $lm++;}
if ( (preg_match("/^did_custom_five$/i",$temp_df[0])) and ($DID_custom_five == $temp_df[1]) ) {$DID_custom_five = $temp_df[2]; $lm++;}
if ( (preg_match("/^agent_email$/i",$temp_df[0])) and ($agent_email == $temp_df[1]) ) {$agent_email = $temp_df[2]; $lm++;}
if ( (preg_match("/^callback_lead_status$/i",$temp_df[0])) and ($CallBackLeadStatus == $temp_df[1]) ) {$CallBackLeadStatus = $temp_df[2]; $lm++;}
if ( (preg_match("/^callback_datetime$/i",$temp_df[0])) and ($CallBackDatETimE == $temp_df[1]) ) {$CallBackDatETimE = $temp_df[2]; $lm++;}
if ( (preg_match("/^called_count$/i",$temp_df[0])) and ($called_count == $temp_df[1]) ) {$called_count = $temp_df[2]; $lm++;}
if ($DB) {echo "DF-Debug 2: $dct|$lm|$temp_df[0]|$temp_df[1]|$temp_df[2]|\n";}
$dct++;
}
}
}
}
$dispo_call_urlARY[$j] = preg_replace('/^VAR/','',$dispo_call_urlARY[$j]); $dispo_call_urlARY[$j] = preg_replace('/^VAR/','',$dispo_call_urlARY[$j]);
$dispo_call_urlARY[$j] = preg_replace('/--A--lead_id--B--/i',"$lead_id",$dispo_call_urlARY[$j]); $dispo_call_urlARY[$j] = preg_replace('/--A--lead_id--B--/i',"$lead_id",$dispo_call_urlARY[$j]);
$dispo_call_urlARY[$j] = preg_replace('/--A--vendor_id--B--/i',"$vendor_id",$dispo_call_urlARY[$j]); $dispo_call_urlARY[$j] = preg_replace('/--A--vendor_id--B--/i',"$vendor_id",$dispo_call_urlARY[$j]);
@@ -13004,6 +13133,22 @@ if ($ACTION == 'updateDISPO')
} }
} }
$form_field_value = urlencode(trim("$row[$o]")); $form_field_value = urlencode(trim("$row[$o]"));
### Check for dispo filter, run if enabled and field matches
if ( ($dispo_filter_enabled > 0) and (preg_match("/\|$field_name_id\|/",$df_fields)) )
{
$dct=0;
while ($dispo_filters_ct > $dct)
{
$temp_df = explode(',',$dispo_filters[$dct]);
$lm=0;
if ( (preg_match("/^$field_name_id$/i",$temp_df[0])) and ($form_field_value == $temp_df[1]) ) {$form_field_value = $temp_df[2]; $lm++;}
if ($DB) {echo "DF-Debug 3: $dct|$lm|$temp_df[0]($field_name_id)|$temp_df[1]($form_field_value)|$temp_df[2]|\n";}
$dct++;
}
}
$dispo_call_urlARY[$j] = preg_replace("/$field_name_tag/i","$form_field_value",$dispo_call_urlARY[$j]); $dispo_call_urlARY[$j] = preg_replace("/$field_name_tag/i","$form_field_value",$dispo_call_urlARY[$j]);
$o++; $o++;
} }
+5 -4
View File
@@ -4336,12 +4336,13 @@ else
# 180330-1425 - Added download of CID Group records feature # 180330-1425 - Added download of CID Group records feature
# 180331-1715 - Added update_did non-agent API function # 180331-1715 - Added update_did non-agent API function
# 180410-1600 - Added pause code manager approval settings # 180410-1600 - Added pause code manager approval settings
# 180411-1647 - Added DISPO_FILTER as Settings Container type
# #
# make sure you have added a user to the vicidial_users MySQL table with at least user_level 9 to access this page the first time # make sure you have added a user to the vicidial_users MySQL table with at least user_level 9 to access this page the first time
$admin_version = '2.14-668a'; $admin_version = '2.14-669a';
$build = '180410-1600'; $build = '180411-1647';
$STARTtime = date("U"); $STARTtime = date("U");
$SQLdate = date("Y-m-d H:i:s"); $SQLdate = date("Y-m-d H:i:s");
@@ -8889,7 +8890,7 @@ if ($ADD==192111111111)
echo "<tr bgcolor=#$SSstd_row4_background><td align=right>"._QXZ("Container ID").": </td><td align=left><input type=text name=container_id size=40 maxlength=40>$NWB#settings_containers-container_id$NWE</td></tr>\n"; echo "<tr bgcolor=#$SSstd_row4_background><td align=right>"._QXZ("Container ID").": </td><td align=left><input type=text name=container_id size=40 maxlength=40>$NWB#settings_containers-container_id$NWE</td></tr>\n";
echo "<tr bgcolor=#$SSstd_row4_background><td align=right>"._QXZ("Container Notes").": </td><td align=left><input type=text name=container_notes size=50 maxlength=255>$NWB#settings_containers-container_notes$NWE</td></tr>\n"; echo "<tr bgcolor=#$SSstd_row4_background><td align=right>"._QXZ("Container Notes").": </td><td align=left><input type=text name=container_notes size=50 maxlength=255>$NWB#settings_containers-container_notes$NWE</td></tr>\n";
echo "<tr bgcolor=#$SSstd_row4_background><td align=right>"._QXZ("Container Type").": </td><td align=left><select size=1 name=container_type><option value='OTHER'>"._QXZ("OTHER")."</option><option value='PERL_CLI'>"._QXZ("PERL_CLI")."</option><option value='EMAIL_TEMPLATE'>"._QXZ("EMAIL_TEMPLATE")."</option><option value='AGI'>"._QXZ("AGI")."</option><option value='INGROUP_LIST'>"._QXZ("INGROUP_LIST")."</option><option value='CAMPAIGN_LIST'>"._QXZ("CAMPAIGN_LIST")."</option>$NWB#settings_containers-container_type$NWE</td></tr>\n"; echo "<tr bgcolor=#$SSstd_row4_background><td align=right>"._QXZ("Container Type").": </td><td align=left><select size=1 name=container_type><option value='OTHER'>"._QXZ("OTHER")."</option><option value='PERL_CLI'>"._QXZ("PERL_CLI")."</option><option value='EMAIL_TEMPLATE'>"._QXZ("EMAIL_TEMPLATE")."</option><option value='AGI'>"._QXZ("AGI")."</option><option value='INGROUP_LIST'>"._QXZ("INGROUP_LIST")."</option><option value='CAMPAIGN_LIST'>"._QXZ("CAMPAIGN_LIST")."</option><option value='DISPO_FILTER'>"._QXZ("DISPO_FILTER")."</option>$NWB#settings_containers-container_type$NWE</td></tr>\n";
echo "<tr bgcolor=#$SSstd_row4_background><td align=right>"._QXZ("Admin User Group").": </td><td align=left><select size=1 name=user_group>\n"; echo "<tr bgcolor=#$SSstd_row4_background><td align=right>"._QXZ("Admin User Group").": </td><td align=left><select size=1 name=user_group>\n";
echo "$UUgroups_list"; echo "$UUgroups_list";
echo "<option SELECTED value=\"---ALL---\">"._QXZ("All Admin User Groups")."</option>\n"; echo "<option SELECTED value=\"---ALL---\">"._QXZ("All Admin User Groups")."</option>\n";
@@ -35187,7 +35188,7 @@ if ($ADD==392111111111)
echo "<tr bgcolor=#$SSstd_row4_background><td align=right>"._QXZ("Container Notes").": </td><td align=left><input type=text name=container_notes size=50 maxlength=255 value=\"$container_notes\">$NWB#settings_containers-container_notes$NWE</td></tr>\n"; echo "<tr bgcolor=#$SSstd_row4_background><td align=right>"._QXZ("Container Notes").": </td><td align=left><input type=text name=container_notes size=50 maxlength=255 value=\"$container_notes\">$NWB#settings_containers-container_notes$NWE</td></tr>\n";
echo "<tr bgcolor=#$SSstd_row4_background><td align=right>"._QXZ("Container Type").": </td><td align=left><select size=1 name=container_type><option value='OTHER'>"._QXZ("OTHER")."</option><option value='PERL_CLI'>"._QXZ("PERL_CLI")."</option><option value='EMAIL_TEMPLATE'>"._QXZ("EMAIL_TEMPLATE")."</option><option value='AGI'>"._QXZ("AGI")."</option><option value='INGROUP_LIST'>"._QXZ("INGROUP_LIST")."</option><option value='CAMPAIGN_LIST'>"._QXZ("CAMPAIGN_LIST")."</option><option SELECTED value='$container_type'>"._QXZ("$container_type")."</option>$NWB#settings_containers-container_type$NWE</td></tr>\n"; echo "<tr bgcolor=#$SSstd_row4_background><td align=right>"._QXZ("Container Type").": </td><td align=left><select size=1 name=container_type><option value='OTHER'>"._QXZ("OTHER")."</option><option value='PERL_CLI'>"._QXZ("PERL_CLI")."</option><option value='EMAIL_TEMPLATE'>"._QXZ("EMAIL_TEMPLATE")."</option><option value='AGI'>"._QXZ("AGI")."</option><option value='INGROUP_LIST'>"._QXZ("INGROUP_LIST")."</option><option value='CAMPAIGN_LIST'>"._QXZ("CAMPAIGN_LIST")."</option><option value='DISPO_FILTER'>"._QXZ("DISPO_FILTER")."</option><option SELECTED value='$container_type'>"._QXZ("$container_type")."</option>$NWB#settings_containers-container_type$NWE</td></tr>\n";
echo "<tr bgcolor=#$SSstd_row4_background><td align=right>"._QXZ("Admin User Group").": </td><td align=left><select size=1 name=user_group>\n"; echo "<tr bgcolor=#$SSstd_row4_background><td align=right>"._QXZ("Admin User Group").": </td><td align=left><select size=1 name=user_group>\n";
echo "$UUgroups_list"; echo "$UUgroups_list";