Added recording filename variable INGROUP for the In-Group ID of a call

Inbound Daily Report, Changed to multi-select for in-group selection
Cleanup log process, Added buffer time for agent log validation of LOGIN between record and next record

git-svn-id: svn://192.168.202.10@1875 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2012-11-15 11:32:09 +00:00
parent d6aabb9043
commit 80023b9a35
12 changed files with 87 additions and 28 deletions
+2
View File
@@ -112,6 +112,8 @@ OTHER CHANGES:
23. Added Lead Tools web page from Admin Utilities. Allows for some basic lead
management through the web interface.
24. Added recording filename variable INGROUP for the In-Group ID of a call
+1
View File
@@ -504,6 +504,7 @@ else
}
$campaign_rec_filename =~ s/CAMPAIGN/$VD_campaign_id/gi;
$campaign_rec_filename =~ s/INGROUP/$VD_campaign_id/gi;
$campaign_rec_filename =~ s/CUSTPHONE/$VD_phone_number/gi;
$campaign_rec_filename =~ s/FULLDATE/$recdate/gi;
$campaign_rec_filename =~ s/TINYDATE/$tinydate/gi;
+2
View File
@@ -177,6 +177,7 @@
# 120513-0051 - Added ability to have Dial In-Group agent calls go directly to agents
# 120514-0953 - Added force checks for dial-ingroup calls
# 121025-2210 - If AGENTDIRECT and no agent defined, set drop call seconds to 1
# 121114-1936 - Added INGROUP recording option
#
@@ -3108,6 +3109,7 @@ while ( ($drop_timer <= $DROP_TIME) && ($wait_in_queue > 0) && ($MCdrop_override
$tinydate = "$Tyear$mon$mday$hour$min$sec";
$campaign_rec_filename =~ s/CAMPAIGN/$VDADcampaign/gi;
$campaign_rec_filename =~ s/INGROUP/$channel_group/gi;
$campaign_rec_filename =~ s/CUSTPHONE/$phone_number/gi;
$campaign_rec_filename =~ s/FULLDATE/$recdate/gi;
$campaign_rec_filename =~ s/TINYDATE/$tinydate/gi;
+1
View File
@@ -688,6 +688,7 @@ if ($VDACaffected_rows > 0)
$tinydate = "$Tyear$mon$mday$hour$min$sec";
$campaign_rec_filename =~ s/CAMPAIGN/$VDADcampaign/gi;
$campaign_rec_filename =~ s/INGROUP/$VDADcampaign/gi;
$campaign_rec_filename =~ s/CUSTPHONE/$VDADphone/gi;
$campaign_rec_filename =~ s/FULLDATE/$recdate/gi;
$campaign_rec_filename =~ s/TINYDATE/$tinydate/gi;
+4 -2
View File
@@ -1,6 +1,6 @@
#!/usr/bin/perl
#
# agi-VDAD_RINGALL.agi version 2.4
# agi-VDAD_RINGALL.agi version 2.6
#
# NOTE: this script is used for on-hook agents to be connected to customer calls
# when they answer their ringing phones
@@ -12,12 +12,13 @@
# exten => _8331*.,n,AGI(agi-VDAD_RINGALL.agi,${EXTEN})
# exten => _8331*.,n,Hangup
#
# Copyright (C) 2011 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
# Copyright (C) 2012 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
#
# changes:
# 110303-2325 - First build
# 110324-2328 - Added recording of remote agent calls, per in-group and campaign recording settings
# 110325-1411 - Added user recording override settings checking for remote agent recording
# 121114-1935 - Added INGROUP recording option
#
$script = 'agi-VDAD_RINGALL.agi';
@@ -325,6 +326,7 @@ if ($NAGcount > 0)
$tinydate = "$Tyear$mon$mday$hour$min$sec";
$campaign_rec_filename =~ s/CAMPAIGN/$VLAcampaign_id/gi;
$campaign_rec_filename =~ s/INGROUP/$VAC_campaign_id/gi;
$campaign_rec_filename =~ s/CUSTPHONE/$VAC_phone_number/gi;
$campaign_rec_filename =~ s/FULLDATE/$recdate/gi;
$campaign_rec_filename =~ s/TINYDATE/$tinydate/gi;
+15 -3
View File
@@ -1,6 +1,6 @@
#!/usr/bin/perl
#
# AST_cleanup_agent_log.pl version 2.4
# AST_cleanup_agent_log.pl version 2.6
#
# DESCRIPTION:
# to be run frequently to clean up the vicidial_agent_log to fix erroneous time
@@ -37,6 +37,7 @@
# 111208-0627 - Added concurrency check option
# 120123-0925 - Added vicidial_log duplicate check
# 120426-1622 - Added agent log park fix
# 121115-0624 - Added buffer time for agent log validation of LOGIN between record and next record
#
# constants
@@ -1390,6 +1391,7 @@ if ( ($skip_agent_log_validation < 1) && ($VAL_validate > 0) )
$Vpause_date="1970-01-01 00:00:00";
if ($Vpause_epoch[$next_r] > 1000)
{
$Vpause_epoch_min5 = ($Vpause_epoch[$next_r] - 5);
($Ksec,$Kmin,$Khour,$Kmday,$Kmon,$Kyear,$Kwday,$Kyday,$Kisdst) = localtime($Vpause_epoch[$next_r]);
$Kyear = ($Kyear + 1900);
$Kmon++;
@@ -1400,11 +1402,21 @@ if ( ($skip_agent_log_validation < 1) && ($VAL_validate > 0) )
if ($Ksec < 10) {$Ksec = "0$Ksec";}
$Vpause_date = "$Kyear-$Kmon-$Kmday $Khour:$Kmin:$Ksec";
$Vpause_dayB = "$Kyear-$Kmon-$Kmday 00:00:00";
($KFsec,$KFmin,$KFhour,$KFmday,$KFmon,$KFyear,$KFwday,$KFyday,$KFisdst) = localtime($Vpause_epoch_min5);
$KFyear = ($KFyear + 1900);
$KFmon++;
if ($KFmon < 10) {$KFmon = "0$KFmon";}
if ($KFmday < 10) {$KFmday = "0$KFmday";}
if ($KFhour < 10) {$KFhour = "0$KFhour";}
if ($KFmin < 10) {$KFmin = "0$KFmin";}
if ($KFsec < 10) {$KFsec = "0$KFsec";}
$VFpause_date = "$KFyear-$KFmon-$KFmday $KFhour:$KFmin:$KFsec";
}
### find if next record is a LOGIN
$LOGOUT_update=0;
$stmtA = "SELECT count(*) from vicidial_user_log where user='$Vuser[$i]' and event_date='$Vpause_date' and event='LOGIN';";
$stmtA = "SELECT count(*) from vicidial_user_log where user='$Vuser[$i]' and event_date<='$Vpause_date' and event_date > '$VFpause_date' and event='LOGIN';";
# if ($DBX) {print "$stmtA\n";}
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
@@ -1417,7 +1429,7 @@ if ( ($skip_agent_log_validation < 1) && ($VAL_validate > 0) )
@aryA = $sthA->fetchrow_array;
$next_begin_epoch = $aryA[0];
$LOGOUT_update++;
# if ($DBX) {print "$next_begin_epoch|$aryA[1]|$LOGOUT_update|$stmtA\n";}
# if ($DBX) {print "LOGOUT UPDATE: $next_begin_epoch|$aryA[1]|$Vpause_date|$VFpause_date|$LOGOUT_update|$stmtA\n";}
}
if ( ($Vwait_epoch[$r] < 1000) || ( ($Vwait_epoch[$r] <= $Vpause_epoch[$r]) && ($Vtalk_epoch[$r] < 1000) && ($Vpause_sec[$r] > 0) ) )
+1 -1
View File
@@ -439,7 +439,7 @@ campaign_dnc_check - Y, N or AREACODE, default is N
campaign_id - 2-8 Character campaign ID, required if using campaign_dnc_check or callbacks
add_to_hopper - Y or N, default is N
hopper_priority - 99 to -99, the higher number the higher priority, default is 0
hopper_local_call_time_check - Y or N, default is N. Validate the local call time before inserting lead in the hopper
hopper_local_call_time_check - Y or N, default is N. Validate the local call time before inserting lead in the hopper(Call Time only, not State Call Times)
duplicate_check - Check for duplicate records in the system, can select more than one (duplicate_check=DUPLIST-DUPTITLEALTPHONELIST)
If duplicate is found, will return error, the duplicate data and lead_id and list_id of existing record
Here are the duplicate_check options:
@@ -26,6 +26,9 @@ Agent Pause After Next Call Link||
This option if enabled will display a link on the agent screen that will let the agent go on pause automatically after they hang up their next call. Default is DISABLED||
Owner Populate||
If this is enabled and the owner field of the lead is blank, the owner field for the lead will populate with the user ID of the agent that handles the call first. Default is DISABLED||
This field allows you to customize the name of the recording when Campaign recording is ONDEMAND or ALLCALLS. The allowed variables are||
The default is FULLDATE_AGENT and would look like this 20051020-103108_6666. Another example is CAMPAIGN_TINYDATE_CUSTPHONE which would look like this TESTCAMP_51020103108_3125551212. Te resulting filename must be less than 90 characters in length||
This field will override the Campaign Recording Filenaming Scheme unless it is set to NONE. The allowed variables are||
############################################################ CLIENT
+1
View File
@@ -45,6 +45,7 @@ $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_array($rslt);
$filename=$row["campaign_rec_filename"];
$filename=eregi_replace("CAMPAIGN", $campaign, $filename);
$filename=eregi_replace("INGROUP", $campaign, $filename);
$filename=eregi_replace("CUSTPHONE", $phone_number, $filename);
$filename=eregi_replace("FULLDATE", date("Ymd-His"), $filename);
$filename=eregi_replace("TINYDATE", (date("Y")-2000).date("mdHis"), $filename);
+5 -2
View File
@@ -387,10 +387,11 @@
# 121025-2335 - Do not allow AGENTDIRECT transfers without a user defined
# 121029-0122 - Added pause_after_next_call and owner_populate campaign options
# 121114-1759 - Fixed manual dial lead preview script variable issue
# 121114-1937 - Added INGROUP recording option
#
$version = '2.6-355c';
$build = '121114-1759';
$version = '2.6-356c';
$build = '121114-1937';
$mel=1; # Mysql Error Log enabled = 1
$mysql_log_count=79;
$one_mysql_log=0;
@@ -4995,6 +4996,7 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
// var campaign_rec_filename = '<?php echo $campaign_rec_filename ?>';
// CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT VENDORLEADCODE LEADID
var REGrecCAMPAIGN = new RegExp("CAMPAIGN","g");
var REGrecINGROUP = new RegExp("INGROUP","g");
var REGrecCUSTPHONE = new RegExp("CUSTPHONE","g");
var REGrecFULLDATE = new RegExp("FULLDATE","g");
var REGrecTINYDATE = new RegExp("TINYDATE","g");
@@ -5004,6 +5006,7 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
var REGrecLEADID = new RegExp("LEADID","g");
filename = LIVE_campaign_rec_filename;
filename = filename.replace(REGrecCAMPAIGN, campaign);
filename = filename.replace(REGrecINGROUP, VDCL_group_id);
filename = filename.replace(REGrecCUSTPHONE, lead_dial_number);
filename = filename.replace(REGrecFULLDATE, filedate);
filename = filename.replace(REGrecTINYDATE, tinydate);
+47 -16
View File
@@ -11,6 +11,7 @@
# 120601-2235 - Added group name to header, added status breakdown counts to page and CSV with option to display them
# 120611-2200 - Added ability to filter output by call time
# 120819-0118 - Formatting changes
# 121115-0621 - Changed to multi-select for in-group selection
#
require("dbconnect.php");
@@ -174,6 +175,25 @@ $STARTtime = date("U");
if (!isset($group)) {$group = '';}
if (!isset($query_date)) {$query_date = $NOW_DATE;}
if (!isset($end_date)) {$end_date = $NOW_DATE;}
$groups_selected = count($group);
$group_name_str="";
$groups_selected_str="";
$groups_selected_URLstr="";
for ($i=0; $i<$groups_selected; $i++)
{
$selected_group_URLstr.="&group[]=$group[$i]";
if ($group[$i]=="--ALL--")
{
$group=array("--ALL--");
$groups_selected=1;
$group_name_str.="-- ALL INGROUPS --";
$all_selected="selected";
}
else
{
$groups_selected_str.="'$group[$i]', ";
}
}
$stmt="select group_id,group_name from vicidial_inbound_groups $whereLOGadmin_viewable_groupsSQL order by group_id;";
$rslt=mysql_query($stmt, $link);
@@ -187,10 +207,16 @@ while ($i < $groups_to_print)
$groups[$i] = $row[0];
$group_names[$i] = $row[1];
$groups_string .= "$groups[$i]|";
if ($group && $groups[$i]==$group) {$group_name=$group_names[$i];}
for ($j=0; $j<$groups_selected; $j++) {
if ($group[$j] && $groups[$i]==$group[$j]) {$group_name_str.="$groups[$i] - $group_names[$i], ";}
if ($group[$j]=="--ALL--") {$groups_selected_str.="'$groups[$i]', ";}
}
$i++;
}
$groups_selected_str=preg_replace('/, $/', '', $groups_selected_str);
$group_name_str=preg_replace('/, $/', '', $group_name_str);
$stmt="select call_time_id,call_time_name from vicidial_call_times $whereLOGadmin_viewable_call_timesSQL order by call_time_id;";
$rslt=mysql_query($stmt, $link);
if ($DB) {$MAIN.="$stmt\n";}
@@ -214,11 +240,11 @@ $HEADER.=" .orange {color: black; background-color: #FFCC99}\n";
$HEADER.="-->\n";
$HEADER.=" </STYLE>\n";
if (!preg_match("/\|$group\|/i",$groups_string))
{
$HEADER.="<!-- group not found: $group $groups_string -->\n";
$group='';
}
#if (!preg_match("/\|$group\|/i",$groups_string))
# {
# $HEADER.="<!-- group not found: $group $groups_string -->\n";
# $group='';
# }
$HEADER.="<script language=\"JavaScript\" src=\"calendar_db.js\"></script>\n";
$HEADER.="<link rel=\"stylesheet\" href=\"calendar.css\">\n";
@@ -232,7 +258,7 @@ $short_header=1;
# require("admin_header.php");
$MAIN.="<FORM ACTION=\"$PHP_SELF\" METHOD=GET name=vicidial_report id=vicidial_report>\n";
$MAIN.="<TABLE CELLPADDING=4 CELLSPACING=0><TR><TD colspan=2>";
$MAIN.="<TABLE CELLPADDING=4 CELLSPACING=0><TR valign='bottom'><TD colspan=2>";
$MAIN.="<INPUT TYPE=TEXT NAME=query_date SIZE=10 MAXLENGTH=10 VALUE=\"$query_date\">";
@@ -260,12 +286,17 @@ $MAIN.="o_cal.a_tpl.yearscroll = false;\n";
$MAIN.="// o_cal.a_tpl.weekstart = 1; // Monday week start\n";
$MAIN.="</script>\n";
$MAIN.="<SELECT SIZE=1 NAME=group>\n";
$MAIN.="<SELECT SIZE=5 NAME=group[] multiple>\n";
$MAIN.="<option $all_selected value=\"--ALL--\">--ALL INGROUPS--</option>\n";
$o=0;
while ($groups_to_print > $o)
{
if ($groups[$o] == $group) {$MAIN.="<option selected value=\"$groups[$o]\">$groups[$o] - $group_names[$o]</option>\n";}
else {$MAIN.="<option value=\"$groups[$o]\">$groups[$o] - $group_names[$o]</option>\n";}
$selected="";
for ($i=0; $i<$groups_selected; $i++) {
echo "<!-- $groups[$o] == $group[$i] //-->\n";
if ($groups[$o] == $group[$i]) {$selected="selected";}
}
$MAIN.="<option $selected value=\"$groups[$o]\">$groups[$o] - $group_names[$o]</option>\n";
$o++;
}
$MAIN.="</SELECT>\n";
@@ -290,12 +321,12 @@ if ($IDR_calltime_available==1)
}
$MAIN.="<INPUT TYPE=submit NAME=SUBMIT VALUE=SUBMIT></TD></TR>\n";
$MAIN.="<TR><TD align='left'><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><INPUT TYPE=checkbox NAME=hourly_breakdown VALUE='checked' $hourly_breakdown>Show hourly results<BR><INPUT TYPE=checkbox NAME=show_disposition_statuses VALUE='checked' $show_disposition_statuses>Show disposition statuses<BR><INPUT TYPE=checkbox NAME=ignore_afterhours VALUE='checked' $ignore_afterhours>Ignore after-hours calls</FONT></TD><TD align='right'><a href=\"$PHP_SELF?DB=$DB&query_date=$query_date&end_date=$end_date&group=$group&shift=$shift&hourly_breakdown=$hourly_breakdown&show_disposition_statuses=$show_disposition_statuses&SUBMIT=$SUBMIT&file_download=1\">DOWNLOAD</a> | <a href=\"./admin.php?ADD=3111&group_id=$group\">MODIFY</a> | <a href=\"./admin.php?ADD=999999\">REPORTS</a></TD></TR>\n";
$MAIN.="<TR><TD align='left'><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><INPUT TYPE=checkbox NAME=hourly_breakdown VALUE='checked' $hourly_breakdown>Show hourly results<BR><INPUT TYPE=checkbox NAME=show_disposition_statuses VALUE='checked' $show_disposition_statuses>Show disposition statuses<BR><INPUT TYPE=checkbox NAME=ignore_afterhours VALUE='checked' $ignore_afterhours>Ignore after-hours calls</FONT></TD><TD align='right'><a href=\"$PHP_SELF?DB=$DB&query_date=$query_date&end_date=$end_date$selected_group_URLstr&shift=$shift&hourly_breakdown=$hourly_breakdown&show_disposition_statuses=$show_disposition_statuses&SUBMIT=$SUBMIT&file_download=1\">DOWNLOAD</a> | <a href=\"./admin.php?ADD=3111&group_id=$group\">MODIFY</a> | <a href=\"./admin.php?ADD=999999\">REPORTS</a></TD></TR>\n";
$MAIN.="<TR><TD colspan=2>";
$MAIN.="<PRE><FONT SIZE=2>\n\n";
if (!$group)
if ($groups_selected==0)
{
$MAIN.="\n\n";
$MAIN.="PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
@@ -490,21 +521,21 @@ else
}
$MAIN.="Inbound Daily Report $NOW_TIME\n";
$MAIN.="Selected in-group: $group - $group_name\n";
$MAIN.="Selected in-groups: $group_name_str\n";
if ($shift && $IDR_calltime_available) {$MAIN.="Selected shift: $shift\n";}
$MAIN.="Time range $DURATIONday days: $query_date_BEGIN to $query_date_END";
if ($shift && $IDR_calltime_available) {$MAIN.="for $shift shift";}
$MAIN.="\n\n";
#echo "Time range day sec: $SQsec - $EQsec Day range in epoch: $SQepoch - $EQepoch Start: $SQepochDAY\n";
$CSV_text.="\"Inbound Daily Report\",\"$NOW_TIME\"\n";
$CSV_text.="Selected in-group: $group - $group_name\n";
$CSV_text.="Selected in-groups: $group_name_str\n";
if ($shift && $IDR_calltime_available) {$CSV_text.="Selected shift: $shift\n";}
$CSV_text.="\"Time range $DURATIONday days:\",\"$query_date_BEGIN to $query_date_END\"";
if ($shift && $IDR_calltime_available) {$CSV_text.="for $shift shift";}
$CSV_text.="\n\n";
if ($show_disposition_statuses) {
$dispo_stmt="select distinct status from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='" . mysql_real_escape_string($group) . "' $big_shift_time_SQL_clause order by status;";
$dispo_stmt="select distinct status from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id in (" . $groups_selected_str . ") $big_shift_time_SQL_clause order by status;";
#echo $dispo_stmt."<BR>";
$dispo_rslt=mysql_query($dispo_stmt, $link);
$dispo_str="";
@@ -672,7 +703,7 @@ else
### GRAB ALL RECORDS WITHIN RANGE FROM THE DATABASE ###
$stmt="select queue_seconds,UNIX_TIMESTAMP(call_date),length_in_sec,status,term_reason,call_date from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='" . mysql_real_escape_string($group) . "';";
$stmt="select queue_seconds,UNIX_TIMESTAMP(call_date),length_in_sec,status,term_reason,call_date from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id in (" . $groups_selected_str . ");";
$rslt=mysql_query($stmt, $link);
if ($DB) {$ASCII_text.="$stmt\n";}
$records_to_grab = mysql_num_rows($rslt);
+5 -4
View File
@@ -3161,12 +3161,13 @@ else
# 121025-2339 - Added without-filter output to test filter function, added server option to test call
# 121027-2344 - Added servers versions page
# 121029-0109 - Added pause_after_next_call and owner_populate campaign options
# 121114-1923 - Added Basic Lead Management page link. Added INGROUP as a recording filename option
#
# 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.6-380a';
$build = '121029-0109';
$admin_version = '2.6-381a';
$build = '121114-1923';
$STARTtime = date("U");
$SQLdate = date("Y-m-d H:i:s");
@@ -5315,7 +5316,7 @@ if ($ADD==99999)
<BR>
<A NAME="vicidial_campaigns-campaign_rec_filename">
<BR>
<B>Campaign Rec Filename -</B> This field allows you to customize the name of the recording when Campaign recording is ONDEMAND or ALLCALLS. The allowed variables are CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT VENDORLEADCODE LEADID. The default is FULLDATE_AGENT and would look like this 20051020-103108_6666. Another example is CAMPAIGN_TINYDATE_CUSTPHONE which would look like this TESTCAMP_51020103108_3125551212. 50 char max.
<B>Campaign Rec Filename -</B> This field allows you to customize the name of the recording when Campaign recording is ONDEMAND or ALLCALLS. The allowed variables are CAMPAIGN INGROUP CUSTPHONE FULLDATE TINYDATE EPOCH AGENT VENDORLEADCODE LEADID. The default is FULLDATE_AGENT and would look like this 20051020-103108_6666. Another example is CAMPAIGN_TINYDATE_CUSTPHONE which would look like this TESTCAMP_51020103108_3125551212. Te resulting filename must be less than 90 characters in length.
<BR>
<A NAME="vicidial_campaigns-allcalls_delay">
@@ -6327,7 +6328,7 @@ if ($ADD==99999)
<BR>
<A NAME="vicidial_inbound_groups-ingroup_rec_filename">
<BR>
<B>In-Group Recording Filename -</B> This field will override the Campaign Recording Filenaming Scheme unless it is set to NONE. The allowed variables are CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT VENDORLEADCODE LEADID. The default is FULLDATE_AGENT and would look like this 20051020-103108_6666. Another example is CAMPAIGN_TINYDATE_CUSTPHONE which would look like this TESTCAMP_51020103108_3125551212. 50 char max. Default is NONE.
<B>In-Group Recording Filename -</B> This field will override the Campaign Recording Filenaming Scheme unless it is set to NONE. The allowed variables are CAMPAIGN INGROUP CUSTPHONE FULLDATE TINYDATE EPOCH AGENT VENDORLEADCODE LEADID. The default is FULLDATE_AGENT and would look like this 20051020-103108_6666. Another example is CAMPAIGN_TINYDATE_CUSTPHONE which would look like this TESTCAMP_51020103108_3125551212. Te resulting filename must be less than 90 characters in length. Default is NONE.
<?php
if ($SSqc_features_active > 0)