Added new DID filter features for DNC matching and URL DID Redirects
git-svn-id: svn://192.168.202.10@2099 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
@@ -196,6 +196,11 @@ OTHER CHANGES:
|
||||
36. Added MathZDC function to prevent division math with zero as one of the
|
||||
numbers.
|
||||
|
||||
37. Added DID Filter options to allow for filtering by the INTERNAL DNC list or
|
||||
a Campaign DNC list. Also added a method to allow for URL filtering to
|
||||
direct a call to a specific system DID instead of only going to the
|
||||
Filter Action.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+66
-5
@@ -33,6 +33,7 @@
|
||||
# 130925-1819 - Added variable filter to prevent DID SQL injection attack
|
||||
# 130926-1549 - Added new queue_log IVR entries for QM
|
||||
# 140126-1138 - Added VMAIL_NO_INST options
|
||||
# 140404-0738 - Added DNC filter options and URL filter DID redirect option
|
||||
#
|
||||
|
||||
$script = 'agi-DID_route.agi';
|
||||
@@ -199,7 +200,7 @@ $extension =~ s/\'|\"|\\\\|\\\|\\|\\;|\\\;|\;|;//gi;
|
||||
|
||||
### Grab DID values from the database
|
||||
$DIDs_in_system=0;
|
||||
$stmtA = "SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,menu_id,record_call,filter_inbound_number,filter_phone_group_id,filter_url,filter_action,filter_extension,filter_exten_context,filter_voicemail_ext,filter_phone,filter_server_ip,filter_user,filter_user_unavailable_action,filter_user_route_settings_ingroup,filter_group_id,filter_call_handle_method,filter_agent_search_method,filter_list_id,filter_campaign_id,filter_phone_code,filter_menu_id,filter_clean_cid_number,group_id FROM vicidial_inbound_dids where did_pattern = '$extension' and did_active='Y';";
|
||||
$stmtA = "SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,menu_id,record_call,filter_inbound_number,filter_phone_group_id,filter_url,filter_action,filter_extension,filter_exten_context,filter_voicemail_ext,filter_phone,filter_server_ip,filter_user,filter_user_unavailable_action,filter_user_route_settings_ingroup,filter_group_id,filter_call_handle_method,filter_agent_search_method,filter_list_id,filter_campaign_id,filter_phone_code,filter_menu_id,filter_clean_cid_number,group_id,filter_dnc_campaign,filter_url_did_redirect FROM vicidial_inbound_dids where did_pattern = '$extension' and did_active='Y';";
|
||||
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
|
||||
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
|
||||
$sthArows=$sthA->rows;
|
||||
@@ -242,6 +243,8 @@ if ($sthArows > 0)
|
||||
$filter_menu_id = $aryA[33];
|
||||
$filter_clean_cid_number = $aryA[34];
|
||||
$group_id = $aryA[35];
|
||||
$filter_dnc_campaign = $aryA[36];
|
||||
$filter_url_did_redirect = $aryA[37];
|
||||
|
||||
$DIDs_in_system++;
|
||||
}
|
||||
@@ -250,7 +253,7 @@ $sthA->finish();
|
||||
if ($sthArows < 1)
|
||||
{
|
||||
### Grab DID values from the database for a default DID pattern if there is one
|
||||
$stmtA = "SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,menu_id,record_call,filter_inbound_number,filter_phone_group_id,filter_url,filter_action,filter_extension,filter_exten_context,filter_voicemail_ext,filter_phone,filter_server_ip,filter_user,filter_user_unavailable_action,filter_user_route_settings_ingroup,filter_group_id,filter_call_handle_method,filter_agent_search_method,filter_list_id,filter_campaign_id,filter_phone_code,filter_menu_id,filter_clean_cid_number,group_id FROM vicidial_inbound_dids where did_pattern = 'default' and did_active='Y';";
|
||||
$stmtA = "SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,menu_id,record_call,filter_inbound_number,filter_phone_group_id,filter_url,filter_action,filter_extension,filter_exten_context,filter_voicemail_ext,filter_phone,filter_server_ip,filter_user,filter_user_unavailable_action,filter_user_route_settings_ingroup,filter_group_id,filter_call_handle_method,filter_agent_search_method,filter_list_id,filter_campaign_id,filter_phone_code,filter_menu_id,filter_clean_cid_number,group_id,filter_dnc_campaign,filter_url_did_redirect FROM vicidial_inbound_dids where did_pattern = 'default' and did_active='Y';";
|
||||
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
|
||||
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
|
||||
$DIDs_in_system=$sthA->rows;
|
||||
@@ -293,6 +296,8 @@ if ($sthArows < 1)
|
||||
$filter_menu_id = $aryA[33];
|
||||
$filter_clean_cid_number = $aryA[34];
|
||||
$group_id = $aryA[35];
|
||||
$filter_dnc_campaign = $aryA[36];
|
||||
$filter_url_did_redirect = $aryA[37];
|
||||
}
|
||||
$sthA->finish();
|
||||
}
|
||||
@@ -440,7 +445,7 @@ if (length($filter_clean_cid_number) > 1)
|
||||
|
||||
|
||||
##### BEGIN filtering process #####
|
||||
if ($filter_inbound_number =~ /GROUP|URL/)
|
||||
if ($filter_inbound_number =~ /GROUP|URL|DNC_INTERNAL|DNC_CAMPAIGN/)
|
||||
{
|
||||
$filter_match_found=0;
|
||||
if ($AGILOG) {$agi_string = "filtering active: |$extension|$filter_inbound_number|$filter_phone_group_id|$filter_url|$filter_action|$filter_clean_cid_number|"; &agi_output;}
|
||||
@@ -457,6 +462,32 @@ if ($filter_inbound_number =~ /GROUP|URL/)
|
||||
}
|
||||
$sthA->finish();
|
||||
}
|
||||
elsif ($filter_inbound_number =~ /DNC_INTERNAL/)
|
||||
{
|
||||
$stmtA = "SELECT count(*) FROM vicidial_dnc where phone_number='$callerid';";
|
||||
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
|
||||
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
|
||||
$sthArows=$sthA->rows;
|
||||
if ($sthArows > 0)
|
||||
{
|
||||
@aryA = $sthA->fetchrow_array;
|
||||
$filter_match_found = $aryA[0];
|
||||
}
|
||||
$sthA->finish();
|
||||
}
|
||||
elsif ($filter_inbound_number =~ /DNC_CAMPAIGN/)
|
||||
{
|
||||
$stmtA = "SELECT count(*) FROM vicidial_campaign_dnc where campaign_id='$filter_dnc_campaign' and phone_number='$callerid';";
|
||||
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
|
||||
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
|
||||
$sthArows=$sthA->rows;
|
||||
if ($sthArows > 0)
|
||||
{
|
||||
@aryA = $sthA->fetchrow_array;
|
||||
$filter_match_found = $aryA[0];
|
||||
}
|
||||
$sthA->finish();
|
||||
}
|
||||
else
|
||||
{
|
||||
### first, find curl binary
|
||||
@@ -495,13 +526,19 @@ if ($filter_inbound_number =~ /GROUP|URL/)
|
||||
if ($full_output > 0)
|
||||
{
|
||||
$filter_match_found = $full_output;
|
||||
if ($filter_url_did_redirect =~ /Y/)
|
||||
{
|
||||
$did_route='DID';
|
||||
if ($AGILOG) {$agi_string = "Filter URL DID Redirect found: |$filter_match_found|$filter_url_did_redirect|$did_route|"; &agi_output;}
|
||||
}
|
||||
}
|
||||
if ($AGILOG) {$agi_string = "URL filter search response: |$filter_match_found|$full_output|$filter_url|"; &agi_output;}
|
||||
}
|
||||
}
|
||||
if ($filter_match_found > 0)
|
||||
{
|
||||
$did_route = $filter_action;
|
||||
if ($did_route !~ /DID/)
|
||||
{$did_route = $filter_action;}
|
||||
$did_extension = $filter_extension;
|
||||
$exten_context = $filter_exten_context;
|
||||
$voicemail_ext = $filter_voicemail_ext;
|
||||
@@ -513,7 +550,13 @@ if ($filter_inbound_number =~ /GROUP|URL/)
|
||||
$menu_id = $filter_menu_id;
|
||||
$route_type = 'FILTER';
|
||||
|
||||
if ($AGILOG) {$agi_string = "Filter match found: |$filter_match_found|$filter_action|$did_route|"; &agi_output;}
|
||||
if ($AGILOG) {$agi_string = "Filter match found: |$filter_match_found|$filter_inbound_number|$filter_action|$did_route|"; &agi_output;}
|
||||
|
||||
### Update the call in vicidial_did_log
|
||||
$stmtA = "UPDATE vicidial_did_log SET did_route='F_$did_route' where uniqueid='$uniqueid' and channel='$channel' and server_ip='$VARserver_ip' and caller_id_number='$callerid' and call_date='$SQLdate';";
|
||||
if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;}
|
||||
$affected_rowsL = $dbhA->do($stmtA);
|
||||
if ($AGILOG) {$agi_string = "-- DID UPDATE LOG : |$affected_rowsL|$stmtA|"; &agi_output;}
|
||||
}
|
||||
}
|
||||
##### END filtering process #####
|
||||
@@ -623,6 +666,24 @@ if ($did_route =~ /EXTEN/)
|
||||
}
|
||||
|
||||
|
||||
### Route call to a DID in the trunkinbound context on the system
|
||||
if ($did_route =~ /DID/)
|
||||
{
|
||||
if ($AGILOG) {$agi_string = "exiting the DID app, transferring call to $filter_match_found @ trunkinbound"; &agi_output;}
|
||||
print "SET CONTEXT trunkinbound\n";
|
||||
$result = <STDIN>;
|
||||
checkresult($result);
|
||||
print "SET EXTENSION $filter_match_found\n";
|
||||
$result = <STDIN>;
|
||||
checkresult($result);
|
||||
print "SET PRIORITY 1\n";
|
||||
$result = <STDIN>;
|
||||
checkresult($result);
|
||||
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
### Route call to a call menu on the system
|
||||
if ($did_route =~ /CALLMENU/)
|
||||
{
|
||||
|
||||
@@ -1819,7 +1819,7 @@ campaign_id VARCHAR(8),
|
||||
phone_code VARCHAR(10) default '1',
|
||||
menu_id VARCHAR(50) default '',
|
||||
record_call ENUM('Y','N','Y_QUEUESTOP') default 'N',
|
||||
filter_inbound_number ENUM('DISABLED','GROUP','URL') default 'DISABLED',
|
||||
filter_inbound_number ENUM('DISABLED','GROUP','URL','DNC_INTERNAL','DNC_CAMPAIGN') default 'DISABLED',
|
||||
filter_phone_group_id VARCHAR(20) default '',
|
||||
filter_url VARCHAR(1000) default '',
|
||||
filter_action ENUM('EXTEN','VOICEMAIL','AGENT','PHONE','IN_GROUP','CALLMENU','VMAIL_NO_INST') default 'EXTEN',
|
||||
@@ -1845,6 +1845,8 @@ custom_three VARCHAR(100) default '',
|
||||
custom_four VARCHAR(100) default '',
|
||||
custom_five VARCHAR(100) default '',
|
||||
user_group VARCHAR(20) default '---ALL---',
|
||||
filter_dnc_campaign VARCHAR(8) default '',
|
||||
filter_url_did_redirect ENUM('Y','N') default 'N',
|
||||
unique index (did_pattern),
|
||||
index (group_id)
|
||||
) ENGINE=MyISAM;
|
||||
@@ -1858,7 +1860,7 @@ caller_id_name VARCHAR(20),
|
||||
extension VARCHAR(100),
|
||||
call_date DATETIME,
|
||||
did_id VARCHAR(9) default '',
|
||||
did_route VARCHAR(9) default '',
|
||||
did_route VARCHAR(20) default '',
|
||||
index (uniqueid),
|
||||
index (caller_id_number),
|
||||
index (extension),
|
||||
@@ -2615,7 +2617,7 @@ extension VARCHAR(100),
|
||||
call_date DATETIME,
|
||||
did_id VARCHAR(9) default '',
|
||||
did_description VARCHAR(50) default '',
|
||||
did_route VARCHAR(9) default '',
|
||||
did_route VARCHAR(20) default '',
|
||||
group_id VARCHAR(20) default '',
|
||||
user VARCHAR(20) default 'VDCL',
|
||||
index (uniqueid),
|
||||
@@ -3255,4 +3257,4 @@ UPDATE vicidial_configuration set value='1766' where name='qc_database_version';
|
||||
|
||||
UPDATE system_settings set vdc_agent_api_active='1';
|
||||
|
||||
UPDATE system_settings SET db_schema_version='1370',db_schema_update_date=NOW(),reload_timestamp=NOW();
|
||||
UPDATE system_settings SET db_schema_version='1371',db_schema_update_date=NOW(),reload_timestamp=NOW();
|
||||
|
||||
@@ -212,3 +212,13 @@ UPDATE system_settings SET db_schema_version='1369',db_schema_update_date=NOW(),
|
||||
ALTER TABLE vicidial_users ADD alter_admin_interface_options ENUM('0','1') default '1';
|
||||
|
||||
UPDATE system_settings SET db_schema_version='1370',db_schema_update_date=NOW() where db_schema_version < 1370;
|
||||
|
||||
ALTER TABLE vicidial_inbound_dids MODIFY filter_inbound_number ENUM('DISABLED','GROUP','URL','DNC_INTERNAL','DNC_CAMPAIGN') default 'DISABLED';
|
||||
ALTER TABLE vicidial_inbound_dids ADD filter_dnc_campaign VARCHAR(8) default '';
|
||||
ALTER TABLE vicidial_inbound_dids ADD filter_url_did_redirect ENUM('Y','N') default 'N';
|
||||
|
||||
ALTER TABLE vicidial_did_log MODIFY did_route VARCHAR(20) default '';
|
||||
|
||||
ALTER TABLE vicidial_did_agent_log MODIFY did_route VARCHAR(20) default '';
|
||||
|
||||
UPDATE system_settings SET db_schema_version='1371',db_schema_update_date=NOW() where db_schema_version < 1371;
|
||||
|
||||
@@ -268,6 +268,12 @@ Voicemail Instructions||
|
||||
This setting allows you to define if the voicemail instructions will play after the voicemail greeting when a call rings on the agent extension and times out to voicemail. Default is Y||
|
||||
optional, possibly slow||
|
||||
Not set as allowed in any campaigns||
|
||||
DNC_INTERNAL will search by the internal DNC list. DNC_CAMPAIGN will search by one specific campaign DNC list||
|
||||
Filter DNC Campaign||
|
||||
If the Filter Inbound Number field is set to DNC_CAMPAIGN then this is the specific campaign ID that the campaign DNC list belongs to||
|
||||
Filter URL DID Redirect||
|
||||
If the Filter Inbound Number field is set to URL then this setting allows the URL response to specify a system DID to redirect the call to insead of using the default action. If a 0 is returned then the default action is used. If anything other than a 0 is returned then the call will be redirected to the resulting URL response value||
|
||||
|
||||
|
||||
########################## CHANGES TO EXISTING PHRASES IN ADMIN TRANSLATION
|
||||
|
||||
|
||||
+21
-7
@@ -1826,6 +1826,10 @@ if (isset($_GET["voicemail_instructions"])) {$voicemail_instructions=$_GET["v
|
||||
elseif (isset($_POST["voicemail_instructions"])) {$voicemail_instructions=$_POST["voicemail_instructions"];}
|
||||
if (isset($_GET["alter_admin_interface_options"])) {$alter_admin_interface_options=$_GET["alter_admin_interface_options"];}
|
||||
elseif (isset($_POST["alter_admin_interface_options"])) {$alter_admin_interface_options=$_POST["alter_admin_interface_options"];}
|
||||
if (isset($_GET["filter_dnc_campaign"])) {$filter_dnc_campaign=$_GET["filter_dnc_campaign"];}
|
||||
elseif (isset($_POST["filter_dnc_campaign"])) {$filter_dnc_campaign=$_POST["filter_dnc_campaign"];}
|
||||
if (isset($_GET["filter_url_did_redirect"])) {$filter_url_did_redirect=$_GET["filter_url_did_redirect"];}
|
||||
elseif (isset($_POST["filter_url_did_redirect"])) {$filter_url_did_redirect=$_POST["filter_url_did_redirect"];}
|
||||
|
||||
|
||||
if (isset($script_id)) {$script_id= strtoupper($script_id);}
|
||||
@@ -2254,6 +2258,7 @@ if ($non_latin < 1)
|
||||
$auto_restart_asterisk = preg_replace('/[^NY]/','',$auto_restart_asterisk);
|
||||
$asterisk_temp_no_restart = preg_replace('/[^NY]/','',$asterisk_temp_no_restart);
|
||||
$voicemail_instructions = preg_replace('/[^NY]/','',$voicemail_instructions);
|
||||
$filter_url_did_redirect = preg_replace('/[^NY]/','',$filter_url_did_redirect);
|
||||
|
||||
$qc_enabled = preg_replace('/[^0-9NY]/','',$qc_enabled);
|
||||
$active = preg_replace('/[^0-9NY]/','',$active);
|
||||
@@ -2305,7 +2310,6 @@ if ($non_latin < 1)
|
||||
$agent_call_log_view_override = preg_replace('/[^0-9a-zA-Z]/','',$agent_call_log_view_override);
|
||||
$queuemetrics_loginout = preg_replace('/[^0-9a-zA-Z]/','',$queuemetrics_loginout);
|
||||
$queuemetrics_callstatus = preg_replace('/[^0-9a-zA-Z]/','',$queuemetrics_callstatus);
|
||||
$filter_inbound_number = preg_replace('/[^0-9a-zA-Z]/','',$filter_inbound_number);
|
||||
$enable_xfer_presets = preg_replace('/[^0-9a-zA-Z]/','',$enable_xfer_presets);
|
||||
$hide_xfer_number_to_dial = preg_replace('/[^0-9a-zA-Z]/','',$hide_xfer_number_to_dial);
|
||||
$manual_dial_prefix = preg_replace('/[^0-9a-zA-Z]/','',$manual_dial_prefix);
|
||||
@@ -2558,6 +2562,8 @@ if ($non_latin < 1)
|
||||
$expiration_date = preg_replace('/[^-_0-9a-zA-Z]/','',$expiration_date);
|
||||
$amd_inbound_group = preg_replace('/[^-_0-9a-zA-Z]/','',$amd_inbound_group);
|
||||
$amd_callmenu = preg_replace('/[^-_0-9a-zA-Z]/','',$amd_callmenu);
|
||||
$filter_inbound_number = preg_replace('/[^-_0-9a-zA-Z]/','',$filter_inbound_number);
|
||||
$filter_dnc_campaign = preg_replace('/[^-_0-9a-zA-Z]/','',$filter_dnc_campaign);
|
||||
|
||||
### ALPHA-NUMERIC and underscore and dash and slash and dot
|
||||
$menu_timeout_prompt = preg_replace('/[^-\/\|\._0-9a-zA-Z]/','',$menu_timeout_prompt);
|
||||
@@ -3282,12 +3288,13 @@ else
|
||||
# 140313-0727 - Added links to Called Counts List IDs Report
|
||||
# 140313-1014 - Added warning to in-groups if they are not set as allowed in any campaigns
|
||||
# 140314-1134 - Added more strict enforcement of level 9 report and user permissions and definable max stats days
|
||||
# 140404-1007 - Added new DID filter features for DNC matching and URL DID Redirects
|
||||
#
|
||||
|
||||
# make sure you have added a user to the vicidial_users MySQL table with at least user_level 8 to access this page the first time
|
||||
|
||||
$admin_version = '2.8-431a';
|
||||
$build = '140314-1134';
|
||||
$admin_version = '2.8-432a';
|
||||
$build = '140404-1007';
|
||||
|
||||
$STARTtime = date("U");
|
||||
$SQLdate = date("Y-m-d H:i:s");
|
||||
@@ -8952,7 +8959,7 @@ if ($ADD==2411)
|
||||
}
|
||||
else
|
||||
{
|
||||
$stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id,record_call,filter_inbound_number,filter_phone_group_id,filter_url,filter_action,filter_extension,filter_exten_context,filter_voicemail_ext,filter_phone,filter_server_ip,filter_user,filter_user_unavailable_action,filter_user_route_settings_ingroup,filter_group_id,filter_call_handle_method,filter_agent_search_method,filter_list_id,filter_campaign_id,filter_phone_code,filter_menu_id,filter_clean_cid_number,custom_one,custom_two,custom_three,custom_four,custom_five,user_group) SELECT \"$did_pattern\",\"$did_description\",did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id,record_call,filter_inbound_number,filter_phone_group_id,filter_url,filter_action,filter_extension,filter_exten_context,filter_voicemail_ext,filter_phone,filter_server_ip,filter_user,filter_user_unavailable_action,filter_user_route_settings_ingroup,filter_group_id,filter_call_handle_method,filter_agent_search_method,filter_list_id,filter_campaign_id,filter_phone_code,filter_menu_id,filter_clean_cid_number,custom_one,custom_two,custom_three,custom_four,custom_five,user_group from vicidial_inbound_dids where did_id=\"$source_did\";";
|
||||
$stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id,record_call,filter_inbound_number,filter_phone_group_id,filter_url,filter_action,filter_extension,filter_exten_context,filter_voicemail_ext,filter_phone,filter_server_ip,filter_user,filter_user_unavailable_action,filter_user_route_settings_ingroup,filter_group_id,filter_call_handle_method,filter_agent_search_method,filter_list_id,filter_campaign_id,filter_phone_code,filter_menu_id,filter_clean_cid_number,custom_one,custom_two,custom_three,custom_four,custom_five,user_group,filter_dnc_campaign,filter_url_did_redirect) SELECT \"$did_pattern\",\"$did_description\",did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id,record_call,filter_inbound_number,filter_phone_group_id,filter_url,filter_action,filter_extension,filter_exten_context,filter_voicemail_ext,filter_phone,filter_server_ip,filter_user,filter_user_unavailable_action,filter_user_route_settings_ingroup,filter_group_id,filter_call_handle_method,filter_agent_search_method,filter_list_id,filter_campaign_id,filter_phone_code,filter_menu_id,filter_clean_cid_number,custom_one,custom_two,custom_three,custom_four,custom_five,user_group,filter_dnc_campaign,filter_url_did_redirect from vicidial_inbound_dids where did_id=\"$source_did\";";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
|
||||
$stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$did_pattern';";
|
||||
@@ -12828,7 +12835,7 @@ if ($ADD==4311)
|
||||
{
|
||||
echo "<br><B>DID MODIFIED: $did_pattern</B>\n";
|
||||
|
||||
$stmt="UPDATE vicidial_inbound_dids set did_pattern='$did_pattern',did_description='$did_description',did_active='$did_active',did_route='$did_route',extension='$extension',exten_context='$exten_context',voicemail_ext='$voicemail_ext',phone='$phone',server_ip='$server_ip',user='$user',user_unavailable_action='$user_unavailable_action',user_route_settings_ingroup='$user_route_settings_ingroup',group_id='$group_id',call_handle_method='$call_handle_method',agent_search_method='$agent_search_method',list_id='$list_id',campaign_id='$campaign_id',phone_code='$phone_code',menu_id='$menu_id',record_call='$record_call',filter_inbound_number='$filter_inbound_number',filter_phone_group_id='$filter_phone_group_id',filter_url='$filter_url',filter_action='$filter_action',filter_extension='$filter_extension',filter_exten_context='$filter_exten_context',filter_voicemail_ext='$filter_voicemail_ext',filter_phone='$filter_phone',filter_server_ip='$filter_server_ip',filter_user='$filter_user',filter_user_unavailable_action='$filter_user_unavailable_action',filter_user_route_settings_ingroup='$filter_user_route_settings_ingroup',filter_group_id='$filter_group_id',filter_call_handle_method='$filter_call_handle_method',filter_agent_search_method='$filter_agent_search_method',filter_list_id='$filter_list_id',filter_campaign_id='$filter_campaign_id',filter_phone_code='$filter_phone_code',filter_menu_id='$filter_menu_id',filter_clean_cid_number='$filter_clean_cid_number',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five',user_group='$user_group' where did_id='$did_id';";
|
||||
$stmt="UPDATE vicidial_inbound_dids set did_pattern='$did_pattern',did_description='$did_description',did_active='$did_active',did_route='$did_route',extension='$extension',exten_context='$exten_context',voicemail_ext='$voicemail_ext',phone='$phone',server_ip='$server_ip',user='$user',user_unavailable_action='$user_unavailable_action',user_route_settings_ingroup='$user_route_settings_ingroup',group_id='$group_id',call_handle_method='$call_handle_method',agent_search_method='$agent_search_method',list_id='$list_id',campaign_id='$campaign_id',phone_code='$phone_code',menu_id='$menu_id',record_call='$record_call',filter_inbound_number='$filter_inbound_number',filter_phone_group_id='$filter_phone_group_id',filter_url='$filter_url',filter_action='$filter_action',filter_extension='$filter_extension',filter_exten_context='$filter_exten_context',filter_voicemail_ext='$filter_voicemail_ext',filter_phone='$filter_phone',filter_server_ip='$filter_server_ip',filter_user='$filter_user',filter_user_unavailable_action='$filter_user_unavailable_action',filter_user_route_settings_ingroup='$filter_user_route_settings_ingroup',filter_group_id='$filter_group_id',filter_call_handle_method='$filter_call_handle_method',filter_agent_search_method='$filter_agent_search_method',filter_list_id='$filter_list_id',filter_campaign_id='$filter_campaign_id',filter_phone_code='$filter_phone_code',filter_menu_id='$filter_menu_id',filter_clean_cid_number='$filter_clean_cid_number',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five',user_group='$user_group',filter_dnc_campaign='$filter_dnc_campaign',filter_url_did_redirect='$filter_url_did_redirect' where did_id='$did_id';";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
|
||||
### LOG INSERTION Admin Log Table ###
|
||||
@@ -24078,7 +24085,7 @@ if ($ADD==3311)
|
||||
$didSQL = "did_id='$did_id'";
|
||||
if ( (strlen($did_id)<1) and (strlen($did_pattern)>0) )
|
||||
{$didSQL = "did_pattern='$did_pattern'";}
|
||||
$stmt="SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id,record_call,filter_inbound_number,filter_phone_group_id,filter_url,filter_action,filter_extension,filter_exten_context,filter_voicemail_ext,filter_phone,filter_server_ip,filter_user,filter_user_unavailable_action,filter_user_route_settings_ingroup,filter_group_id,filter_call_handle_method,filter_agent_search_method,filter_list_id,filter_campaign_id,filter_phone_code,filter_menu_id,filter_clean_cid_number,custom_one,custom_two,custom_three,custom_four,custom_five,user_group from vicidial_inbound_dids where $didSQL $LOGadmin_viewable_groupsSQL;";
|
||||
$stmt="SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id,record_call,filter_inbound_number,filter_phone_group_id,filter_url,filter_action,filter_extension,filter_exten_context,filter_voicemail_ext,filter_phone,filter_server_ip,filter_user,filter_user_unavailable_action,filter_user_route_settings_ingroup,filter_group_id,filter_call_handle_method,filter_agent_search_method,filter_list_id,filter_campaign_id,filter_phone_code,filter_menu_id,filter_clean_cid_number,custom_one,custom_two,custom_three,custom_four,custom_five,user_group,filter_dnc_campaign,filter_url_did_redirect from vicidial_inbound_dids where $didSQL $LOGadmin_viewable_groupsSQL;";
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
@@ -24129,6 +24136,8 @@ if ($ADD==3311)
|
||||
$custom_four = $row[44];
|
||||
$custom_five = $row[45];
|
||||
$user_group = $row[46];
|
||||
$filter_dnc_campaign = $row[47];
|
||||
$filter_url_did_redirect = $row[48];
|
||||
|
||||
|
||||
$stmt="SELECT campaign_id,campaign_name from vicidial_campaigns $whereLOGallowed_campaignsSQL order by campaign_id;";
|
||||
@@ -24277,7 +24286,7 @@ if ($ADD==3311)
|
||||
|
||||
echo "<tr bgcolor=#99FFCC><td align=right>Clean CID Number: </td><td align=left><input type=text name=filter_clean_cid_number size=20 maxlength=20 value=\"$filter_clean_cid_number\">$NWB#inbound_dids-filter_clean_cid_number$NWE</td></tr>\n";
|
||||
|
||||
echo "<tr bgcolor=#CCFFFF><td align=right>Filter Inbound Number: </td><td align=left><select size=1 name=filter_inbound_number><option value=\"DISABLED\">DISABLED</option><option value=\"GROUP\">GROUP</option><option value=\"URL\">URL</option><option SELECTED>$filter_inbound_number</option></select>$NWB#inbound_dids-filter_inbound_number$NWE</td></tr>\n";
|
||||
echo "<tr bgcolor=#CCFFFF><td align=right>Filter Inbound Number: </td><td align=left><select size=1 name=filter_inbound_number><option value=\"DISABLED\">DISABLED</option><option value=\"GROUP\">GROUP</option><option value=\"URL\">URL</option><option value=\"DNC_INTERNAL\">DNC_INTERNAL</option><option value=\"DNC_CAMPAIGN\">DNC_CAMPAIGN</option><option SELECTED>$filter_inbound_number</option></select>$NWB#inbound_dids-filter_inbound_number$NWE</td></tr>\n";
|
||||
|
||||
$stmt="SELECT filter_phone_group_id,filter_phone_group_name from vicidial_filter_phone_groups $whereLOGadmin_viewable_groupsSQL order by filter_phone_group_id;";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
@@ -24294,6 +24303,11 @@ if ($ADD==3311)
|
||||
echo "<tr bgcolor=#CCFFFF><td align=right><a href=\"$PHP_SELF?ADD=3711&filter_phone_group_id=$filter_phone_group_id\">Filter Phone Group ID:</a> </td><td align=left><select size=1 name=filter_phone_group_id>$Fgroups_list<option SELECTED>$filter_phone_group_id</option></select>$NWB#inbound_dids-filter_phone_group_id$NWE</td></tr>\n";
|
||||
|
||||
echo "<tr bgcolor=#CCFFFF><td align=right>Filter URL: </td><td align=left><input type=text name=filter_url size=80 maxlength=1000 value=\"$filter_url\">$NWB#inbound_dids-filter_url$NWE</td></tr>\n";
|
||||
|
||||
echo "<tr bgcolor=#CCFFFF><td align=right>Filter URL DID Redirect: </td><td align=left><select size=1 name=filter_url_did_redirect><option>Y</option><option>N</option><option SELECTED>$filter_url_did_redirect</option></select>$NWB#inbound_dids-filter_url_did_redirect$NWE</td></tr>\n";
|
||||
|
||||
echo "<tr bgcolor=#CCFFFF><td align=right>Filter DNC Campaign: </td><td align=left><input type=text name=filter_dnc_campaign size=10 maxlength=8 value=\"$filter_dnc_campaign\">$NWB#inbound_dids-filter_dnc_campaign$NWE</td></tr>\n";
|
||||
|
||||
echo "<tr bgcolor=#CCFFFF><td align=right>Filter Action: </td><td align=left><select size=1 name=filter_action><option>AGENT</option><option>EXTEN</option><option>VOICEMAIL</option><option>VMAIL_NO_INST</option><option>PHONE</option><option>IN_GROUP</option><option>CALLMENU</option><option SELECTED>$filter_action</option></select>$NWB#inbound_dids-filter_action$NWE</td></tr>\n";
|
||||
|
||||
echo "<tr bgcolor=#CCFFFF><td align=right>Filter Extension: </td><td align=left><input type=text name=filter_extension size=40 maxlength=50 value=\"$filter_extension\">$NWB#inbound_dids-extension$NWE</td></tr>\n";
|
||||
|
||||
+14
-1
@@ -10,6 +10,7 @@
|
||||
# 131208-1635 - Added help for max dead, dispo and pause time campaign options
|
||||
# 140126-1023 - Added VMAIL_NO_INST options
|
||||
# 140126-2254 - Added voicemail_instructions option for phones
|
||||
# 140404-1104 - Added new DID filter options
|
||||
#
|
||||
|
||||
|
||||
@@ -2450,7 +2451,7 @@ if ($SSqc_features_active > 0)
|
||||
<BR>
|
||||
<A NAME="inbound_dids-filter_inbound_number">
|
||||
<BR>
|
||||
<B>Filter Inbound Number -</B> This option if enabled allows you to filter calls coming into this DID and send them to an alternative action if they match a phone number that is in the filter phone group or a URL response if you have configured one. Default is DISABLED. GROUP will search in a Filter Phone Group. URL will send a URL and will match if a 1 is sent back.
|
||||
<B>Filter Inbound Number -</B> This option if enabled allows you to filter calls coming into this DID and send them to an alternative action if they match a phone number that is in the filter phone group or a URL response if you have configured one. Default is DISABLED. GROUP will search in a Filter Phone Group. URL will send a URL and will match if a 1 is sent back. DNC_INTERNAL will search by the internal DNC list. DNC_CAMPAIGN will search by one specific campaign DNC list.
|
||||
|
||||
<BR>
|
||||
<A NAME="inbound_dids-filter_phone_group_id">
|
||||
@@ -2462,6 +2463,18 @@ if ($SSqc_features_active > 0)
|
||||
<BR>
|
||||
<B>Filter URL -</B> If the Filter Inbound Number field is set to URL then this is the web address of a script that will search a remote system and return a 1 for a match and a 0 for no match. Only two variables are available in the address if you use the VAR prefix like with webform addresses in campaigns, --A--phone_number--B-- and --A--did_pattern--B-- can be used in the URL to indicate the caller ID of the caller and the DID that the customer called in on.
|
||||
|
||||
<BR>
|
||||
<A NAME="inbound_dids-filter_url_did_redirect">
|
||||
<BR>
|
||||
<B>Filter URL DID Redirect -</B> If the Filter Inbound Number field is set to URL then this setting allows the URL response to specify a system DID to redirect the call to insead of using the default action. If a 0 is returned then the default action is used. If anything other than a 0 is returned then the call will be redirected to the resulting URL response value.
|
||||
|
||||
<BR>
|
||||
<A NAME="inbound_dids-filter_dnc_campaign">
|
||||
<BR>
|
||||
<B>Filter DNC Campaign -</B> If the Filter Inbound Number field is set to DNC_CAMPAIGN then this is the specific campaign ID that the campaign DNC list belongs to.
|
||||
|
||||
|
||||
|
||||
<BR>
|
||||
<A NAME="inbound_dids-filter_action">
|
||||
<BR>
|
||||
|
||||
Reference in New Issue
Block a user