diff --git a/agc_2-X/trunk/UPGRADE b/agc_2-X/trunk/UPGRADE index e68e76d2..a32ab86a 100644 --- a/agc_2-X/trunk/UPGRADE +++ b/agc_2-X/trunk/UPGRADE @@ -680,6 +680,9 @@ OTHER CHANGES: 154. Added ability to use static audio from dynamic fields in Survey and Answering machine messages when using Cepstral TTS +155. Added the Campaign Status List Report which shows calls broken down by + status within each list_id for a campaign. + diff --git a/agc_2-X/trunk/translations/raw_translation_files/TO_BE_TRANSLATED_2.4.txt b/agc_2-X/trunk/translations/raw_translation_files/TO_BE_TRANSLATED_2.4.txt index c6073d35..99a23d34 100644 --- a/agc_2-X/trunk/translations/raw_translation_files/TO_BE_TRANSLATED_2.4.txt +++ b/agc_2-X/trunk/translations/raw_translation_files/TO_BE_TRANSLATED_2.4.txt @@ -693,7 +693,10 @@ Alt-Log DB Server|| This is the alternate log database server. This is optional, and allows some logs to be written to a separate database. Default is empty|| Alt-Log Tables|| These are the tables that are available for logging on the alternate log database server. Default is blank|| - +This is the actual Text To Speech data field that is sent to Cepstral for creation of the audio file to be played to the customer. you can use Speech Synthesis Markup Language -SSML- in this field, for example|| +for a 1 second break. You can also use several variables such as first name, last name and title as ViciDial variables just like you do in a Script: --A--first_name--B--|| +If you have static audio files that you want to use based upon the value of one of the fields you can use those as well with C and D tags. The file names must be all lower case and they must be 8k 16bit pcm wav files. The field name must be the same but without the .wav in the filename. For example --C----A--address3--B----D-- would first find the value for address3, then it would try to find an audio file matching that value to put it into the prompt|| +Here is a list of the available variables|| lead_report_export.php admin_campaign_multi_alt.php diff --git a/agc_2-X/trunk/www/vicidial/AST_campaign_status_list_report.php b/agc_2-X/trunk/www/vicidial/AST_campaign_status_list_report.php new file mode 100644 index 00000000..d8eaaacd --- /dev/null +++ b/agc_2-X/trunk/www/vicidial/AST_campaign_status_list_report.php @@ -0,0 +1,389 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 110815-2138 - First build +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date_D"])) {$query_date_D=$_GET["query_date_D"];} + elseif (isset($_POST["query_date_D"])) {$query_date_D=$_POST["query_date_D"];} +if (isset($_GET["end_date_D"])) {$end_date_D=$_GET["end_date_D"];} + elseif (isset($_POST["end_date_D"])) {$end_date_D=$_POST["end_date_D"];} +if (isset($_GET["query_date_T"])) {$query_date_T=$_GET["query_date_T"];} + elseif (isset($_POST["query_date_T"])) {$query_date_T=$_POST["query_date_T"];} +if (isset($_GET["end_date_T"])) {$end_date_T=$_GET["end_date_T"];} + elseif (isset($_POST["end_date_T"])) {$end_date_T=$_POST["end_date_T"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +$report_name="Campaign Status List Report"; +$NOW_DATE = date("Y-m-d"); +if (!isset($query_date_D)) {$query_date_D=$NOW_DATE;} +if (!isset($end_date_D)) {$end_date_D=$NOW_DATE;} +if (!isset($query_date_T)) {$query_date_T="00:00:00";} +if (!isset($end_date_T)) {$end_date_T="23:59:59";} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,outbound_autodial_active,slave_db_server,reports_use_slave_db FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {$HTML_text.="$stmt\n";} +if ($archive_tbl) {$agent_log_table="vicidial_agent_log_archive";} else {$agent_log_table="vicidial_agent_log";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $outbound_autodial_active = $row[1]; + $slave_db_server = $row[2]; + $reports_use_slave_db = $row[3]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +###################################### +if ( (strlen($slave_db_server)>5) and (preg_match("/$report_name/",$reports_use_slave_db)) ) + { + mysql_close($link); + $use_slave_server=1; + $db_source = 'S'; + require("dbconnect.php"); + $HTML_text.="\n"; + } + +$PHP_AUTH_USER = preg_replace("/[^0-9a-zA-Z]/","",$PHP_AUTH_USER); +$PHP_AUTH_PW = preg_replace("/[^0-9a-zA-Z]/","",$PHP_AUTH_PW); + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1' and active='Y';"; +if ($DB) {$HTML_text.="|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level='7' and view_reports='1' and active='Y';"; +if ($DB) {$HTML_text.="|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$reports_only_user=$row[0]; + +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +$stmt="SELECT user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1' and active='Y';"; +if ($DB) {$HTML_text.="|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$LOGuser_group = $row[0]; + +$stmt="SELECT allowed_campaigns,allowed_reports from vicidial_user_groups where user_group='$LOGuser_group';"; +if ($DB) {$HTML_text.="|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$LOGallowed_campaigns = $row[0]; +$LOGallowed_reports = $row[1]; + +if ( (!preg_match("/$report_name/",$LOGallowed_reports)) and (!preg_match("/ALL REPORTS/",$LOGallowed_reports)) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "You are not allowed to view this report: |$PHP_AUTH_USER|$report_name|\n"; + exit; + } + +$LOGallowed_campaignsSQL=''; +$whereLOGallowed_campaignsSQL=''; +if ( (!preg_match("/-ALL/",$LOGallowed_campaigns)) ) + { + $rawLOGallowed_campaignsSQL = preg_replace("/ -/",'',$LOGallowed_campaigns); + $rawLOGallowed_campaignsSQL = preg_replace("/ /","','",$rawLOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$rawLOGallowed_campaignsSQL')"; + $whereLOGallowed_campaignsSQL = "where campaign_id IN('$rawLOGallowed_campaignsSQL')"; + } +$regexLOGallowed_campaigns = " $LOGallowed_campaigns "; + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $i++; + } + +$stmt="select campaign_id from vicidial_campaigns $whereLOGallowed_campaignsSQL order by campaign_id;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {$HTML_text.="$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + if (preg_match("/-ALL/",$group_string) ) + {$group[$i] = $groups[$i];} + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + if ( (preg_match("/ $group[$i] /",$regexLOGallowed_campaigns)) or (preg_match("/-ALL/",$LOGallowed_campaigns)) ) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + } + $i++; + } + +if ( (preg_match("/--ALL--/",$group_string) ) or ($group_ct < 1) ) + {$group_SQL = "";} +else + { + $group_SQL = preg_replace("/,\$/",'',$group_SQL); + $group_SQL_str=$group_SQL; + $group_SQL = "and campaign_id IN($group_SQL)"; + } + +$query_date="$query_date_D $query_date_T"; +$end_date="$end_date_D $end_date_T"; + +$HTML_head.="\n"; +$HTML_head.="\n"; +$HTML_head.="\n"; + +$HTML_head.="\n"; +$HTML_head.="\n"; + +$HTML_head.="\n"; +$HTML_head.="$report_name$group_S\n"; +$short_header=1; + +# require("admin_header.php"); + +$HTML_text.="
"; + +$HTML_text.="
\n"; +$HTML_text.="
Dates:
"; +$HTML_text.="\n"; +$HTML_text.="\n"; +$HTML_text.="\n"; +$HTML_text.=""; + +$HTML_text.="\n"; + +$HTML_text.="   "; + +$HTML_text.="
to
"; + +$HTML_text.="\n"; + +$HTML_text.="   "; + +$HTML_text.="
Campaigns:
"; +$HTML_text.="\n"; + +$HTML_text.="
 \n"; +$HTML_text.="\n"; +$HTML_text.="\n"; +$HTML_text.="         "; + +$HTML_text.="          \n"; +$HTML_text.="DOWNLOAD |"; +$HTML_text.=" REPORTS \n"; +$HTML_text.="\n"; +$HTML_text.="
"; +$HTML_text.="
\n\n"; + +$HTML_text.="
";
+$i=0;
+$group_string='|';
+$group_ct = count($group);
+while($i < $group_ct)
+	{
+	$stmt="select distinct status, status_name from vicidial_campaign_statuses where campaign_id='$group[$i]' UNION select distinct status, status_name from vicidial_statuses order by status, status_name";
+	$rslt=mysql_query($stmt, $link);
+	while ($row=mysql_fetch_row($rslt)) 
+		{
+		$status_ary[$row[0]]=" - $row[1]";
+		}
+	$HTML_text.="CAMPAIGN: $group[$i]\n";
+	$CSV_text.="\"CAMPAIGN: $group[$i]\"\n";
+
+	$stmt="select closer_campaigns from vicidial_campaigns where campaign_id='$group[$i]'";
+	$rslt=mysql_query($stmt, $link);
+	if (mysql_num_rows($rslt)>0) 
+		{
+		$row=mysql_fetch_row($rslt);
+		$inbound_groups=preg_replace('/ -$/', '', trim($row[0]));
+		if (strlen($inbound_groups)>0) 
+			{
+			$inbound_groups=preg_replace("/\s/", "', '", $inbound_groups);
+			$inbound_SQL="and vicidial_closer_log.campaign_id in ('$inbound_groups')";
+			} 
+		else 
+			{
+			$inbound_SQL="";
+			}
+		}
+
+	$stmt="select distinct list_id, list_name from vicidial_lists where campaign_id='$group[$i]' order by list_id, list_name asc";
+	$rslt=mysql_query($stmt, $link);
+	while ($row=mysql_fetch_row($rslt)) 
+		{
+		$list_id=$row[0]; $list_name=$row[1];
+		$dispo_ary="";
+		$HTML_text.="List ID #$list_id: $list_name\n";
+		$CSV_text.="\"List ID #$list_id: $list_name\"\n";
+		# 			$stat_stmt="select vs.status_name, count(*), sum(pause_sec), sum(wait_sec), sum(talk_sec), sum(dispo_sec), sum(dead_sec) from vicidial_agent_log val, vicidial_list vl, vicidial_statuses vs where val.event_time>='$query_date' and val.event_time<='$end_date' and val.campaign_id='$group[$i]' and val.lead_id=vl.list_id and vl.list_id='$list_id' and val.status=vs.status group by vs.status_name order by vs.status_name";
+		#$stat_stmt="select val.status, count(*), sum(pause_sec), sum(wait_sec), sum(talk_sec), sum(dispo_sec), sum(dead_sec) from vicidial_agent_log val, vicidial_list vl where val.event_time>='$query_date' and val.event_time<='$end_date' and val.campaign_id='$group[$i]' and val.lead_id=vl.lead_id and vl.list_id='$list_id' group by val.status order by val.status";
+		$stat_stmt="select vicidial_log.status, vicidial_log.uniqueid, vicidial_log.length_in_sec as duration, (vicidial_agent_log.talk_sec-vicidial_agent_log.dead_sec) as handle_time from vicidial_log LEFT OUTER JOIN vicidial_agent_log on vicidial_log.lead_id=vicidial_agent_log.lead_id and vicidial_log.uniqueid=vicidial_agent_log.uniqueid where vicidial_log.call_date>='$query_date' and vicidial_log.call_date<='$end_date' and vicidial_log.list_id='$list_id' UNION select vicidial_closer_log.status, vicidial_closer_log.uniqueid, vicidial_closer_log.length_in_sec as duration, (vicidial_agent_log.talk_sec-vicidial_agent_log.dead_sec) as handle_time from vicidial_closer_log LEFT OUTER JOIN vicidial_agent_log on vicidial_closer_log.lead_id=vicidial_agent_log.lead_id and vicidial_closer_log.uniqueid=vicidial_agent_log.uniqueid where call_date>='$query_date' and call_date<='$end_date' and list_id='$list_id' order by status";
+		# $HTML_text.=$stat_stmt."\n";
+		$stat_rslt=mysql_query($stat_stmt, $link);
+		if (mysql_num_rows($stat_rslt)>0) 
+			{
+			$total_calls=0; $total_handle_time=0; $total_duration=0;
+			$HTML_text.="+-------------------------------------+-------+-----------+-------------+\n";
+			$HTML_text.="| DISPOSITION                         | CALLS | DURATION  | HANDLE TIME |\n";
+			$HTML_text.="+-------------------------------------+-------+-----------+-------------+\n";
+			$CSV_text.="\"DISPOSITION\",\"CALLS\",\"DURATION\",\"HANDLE TIME\"\n";
+			while ($stat_row=mysql_fetch_row($stat_rslt)) 
+				{
+				#if ($stat_row[0]=="") {$stat_row[0]="(no dispo)";}
+				#$handle_time=sec_convert(($stat_row[4]-$stat_row[6]), 'H');
+				#$duration=sec_convert(($stat_row[3]+$stat_row[4]+$stat_row[5]), 'H');
+				#$total_handle_time+=($stat_row[4]-$stat_row[6]);
+				#$total_duration+=($stat_row[3]+$stat_row[4]+$stat_row[5]);
+				$dispo_ary[$stat_row[0]][0]++;
+				$dispo_ary[$stat_row[0]][1]+=$stat_row[2];
+				$dispo_ary[$stat_row[0]][2]+=$stat_row[3];
+				$total_calls++;
+				$total_duration+=$stat_row[2];
+				$total_handle_time+=$stat_row[3];
+				}
+
+			while (list($key, $val)=each($dispo_ary)) 
+				{
+				$HTML_text.="| ".sprintf("%-35s", $key.$status_ary[$key]);
+				$HTML_text.=" | ".sprintf("%5s", $val[0]);
+				$HTML_text.=" | ".sprintf("%9s", sec_convert($val[1], 'H'));
+				$HTML_text.=" | ".sprintf("%11s", sec_convert($val[2], 'H'))." |\n";
+				$CSV_text.="\"".$key.$status_ary[$key]."\",\"$val[0]\",\"".sec_convert($val[1], 'H')."\",\"".sec_convert($val[2], 'H')."\"\n";
+				}
+			$HTML_text.="+-------------------------------------+-------+-----------+-------------+\n";
+			$HTML_text.="|                             TOTALS:";
+			$HTML_text.=" | ".sprintf("%5s", $total_calls);
+			$HTML_text.=" | ".sprintf("%9s", sec_convert($total_duration, 'H'));
+			$HTML_text.=" | ".sprintf("%11s", sec_convert($total_handle_time, 'H'))." |\n";
+			$HTML_text.="+-------------------------------------+-------+-----------+-------------+\n";
+			$CSV_text.="\"TOTALS:\",\"$total_calls\",\"".sec_convert($total_duration, 'H')."\",\"".sec_convert($total_handle_time, 'H')."\"\n\n";
+			}
+		else 
+			{
+			$HTML_text.="***NO CALLS FOUND FROM $query_date TO $end_date***\n";
+			$CSV_text.="\"***NO CALLS FOUND FROM $query_date TO $end_date***\"\n\n";
+			}
+		$HTML_text.="\n";
+		}
+	$i++;
+	$HTML_text.="\n\n";
+	$CSV_text.="\n\n";
+	}
+$HTML_text.="
"; + +if ($file_download>0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AST_campaign_status_$US$FILE_TIME.csv"; + $CSV_text=preg_replace('/\n +,/', ',', $CSV_text); + $CSV_text=preg_replace('/ +\"/', '"', $CSV_text); + $CSV_text=preg_replace('/\" +/', '"', $CSV_text); + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$CSV_text"; + + exit; + } +else + { + header("Content-type: text/html; charset=utf-8"); + + echo $HTML_head; + require("admin_header.php"); + echo $HTML_text; + flush(); + } +?> diff --git a/agc_2-X/trunk/www/vicidial/admin.php b/agc_2-X/trunk/www/vicidial/admin.php index accd2c47..3b99dd9b 100644 --- a/agc_2-X/trunk/www/vicidial/admin.php +++ b/agc_2-X/trunk/www/vicidial/admin.php @@ -98,9 +98,9 @@ $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; $PHP_SELF=$_SERVER['PHP_SELF']; $QUERY_STRING = getenv("QUERY_STRING"); -$Vreports = 'NONE, Real-Time Main Report, Real-Time Campaign Summary , Inbound Report, Inbound Service Level Report, Inbound Summary Hourly Report, Inbound DID Report, Inbound IVR Report, Outbound Calling Report, Outbound Summary Interval Report, Outbound IVR Report, Fronter - Closer Report, Lists Campaign Statuses Report, Export Calls Report, Export Leads Report , Agent Time Detail, Agent Status Detail, Agent Performance Detail, Team Performance Detail, Single Agent Daily , User Timeclock Report, User Group Timeclock Status Report, User Timeclock Detail Report , Server Performance Report, Administration Change Log, List Update Stats, User Stats, User Time Sheet, Download List'; +$Vreports = 'NONE, Real-Time Main Report, Real-Time Campaign Summary , Inbound Report, Inbound Service Level Report, Inbound Summary Hourly Report, Inbound DID Report, Inbound IVR Report, Outbound Calling Report, Outbound Summary Interval Report, Outbound IVR Report, Fronter - Closer Report, Lists Campaign Statuses Report, Campaign Status List Report, Export Calls Report, Export Leads Report , Agent Time Detail, Agent Status Detail, Agent Performance Detail, Team Performance Detail, Single Agent Daily , User Timeclock Report, User Group Timeclock Status Report, User Timeclock Detail Report , Server Performance Report, Administration Change Log, List Update Stats, User Stats, User Time Sheet, Download List'; -$UGreports = 'ALL REPORTS, NONE, Real-Time Main Report, Real-Time Campaign Summary , Inbound Report, Inbound Service Level Report, Inbound Summary Hourly Report, Inbound DID Report, Inbound IVR Report, Outbound Calling Report, Outbound Summary Interval Report, Outbound IVR Report, Fronter - Closer Report, Lists Campaign Statuses Report, Export Calls Report , Export Leads Report , Agent Time Detail, Agent Status Detail, Agent Performance Detail, Team Performance Detail, Single Agent Daily , User Timeclock Report, User Group Timeclock Status Report, User Timeclock Detail Report , Server Performance Report, Administration Change Log, List Update Stats, User Stats, User Time Sheet, Download List, Custom Reports Links, CallCard Search'; +$UGreports = 'ALL REPORTS, NONE, Real-Time Main Report, Real-Time Campaign Summary , Inbound Report, Inbound Service Level Report, Inbound Summary Hourly Report, Inbound DID Report, Inbound IVR Report, Outbound Calling Report, Outbound Summary Interval Report, Outbound IVR Report, Fronter - Closer Report, Lists Campaign Statuses Report, Campaign Status List Report, Export Calls Report , Export Leads Report , Agent Time Detail, Agent Status Detail, Agent Performance Detail, Team Performance Detail, Single Agent Daily , User Timeclock Report, User Group Timeclock Status Report, User Timeclock Detail Report , Server Performance Report, Administration Change Log, List Update Stats, User Stats, User Time Sheet, Download List, Custom Reports Links, CallCard Search'; $Vtables = 'NONE,vicidial_log_noanswer'; @@ -2830,12 +2830,13 @@ else # 110801-0833 - Added on_hook_cid option for in-groups # 110802-2053 - Added links to Team Performance Detail Report # 110809-1547 - Added no-answer log and alt-log server system settings +# 110815-2155 - Added the Campaign Status List Report # # 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.4-329a'; -$build = '110809-1547'; +$admin_version = '2.4-330a'; +$build = '110815-2155'; $STARTtime = date("U"); $SQLdate = date("Y-m-d H:i:s"); @@ -6520,7 +6521,7 @@ if ($ADD==99999)
- TTS Text - This is the actual Text To Speech data field that is sent to Cepstral for creation of the audio file to be played to the customer. you can use Speech Synthesis Markup Language -SSML- in this field, for example, <break time='1000ms'/> for a 1 second break. You can also use several variables such as first name, last name and title as ViciDial variables just like you do in a Script: --A--first_name--B--. Here is a list of the available variables: lead_id, entry_date, modify_date, status, user, vendor_lead_code, source_id, list_id, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, called_count, last_local_call_time, rank, owner + TTS Text - This is the actual Text To Speech data field that is sent to Cepstral for creation of the audio file to be played to the customer. you can use Speech Synthesis Markup Language -SSML- in this field, for example, <break time='1000ms'/> for a 1 second break. You can also use several variables such as first name, last name and title as ViciDial variables just like you do in a Script: --A--first_name--B--. If you have static audio files that you want to use based upon the value of one of the fields you can use those as well with C and D tags. The file names must be all lower case and they must be 8k 16bit pcm wav files. The field name must be the same but without the .wav in the filename. For example --C----A--address3--B----D-- would first find the value for address3, then it would try to find an audio file matching that value to put it into the prompt. Here is a list of the available variables: lead_id, entry_date, modify_date, status, user, vendor_lead_code, source_id, list_id, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, called_count, last_local_call_time, rank, owner @@ -29888,7 +29889,7 @@ if ($ADD==999999) if ($LOGexport_reports >= 1) { if ( (preg_match("/Export Calls Report/",$LOGallowed_reports)) or (preg_match("/ALL REPORTS/",$LOGallowed_reports)) ) - {echo " - Export";} + {echo " - Export";} } echo "\n"; } @@ -29896,6 +29897,8 @@ if ($ADD==999999) {echo "
  • Fronter - Closer Report\n";} if ( (preg_match("/Lists Campaign Statuses Report/",$LOGallowed_reports)) or (preg_match("/ALL REPORTS/",$LOGallowed_reports)) ) {echo "
  • Lists Campaign Statuses Report\n";} + if ( (preg_match("/Campaign Status List Report/",$LOGallowed_reports)) or (preg_match("/ALL REPORTS/",$LOGallowed_reports)) ) + {echo "
  • Campaign Status List Report\n";} # echo "
  • AGENT SPREADSHEET PERFORMANCE\n"; if ($LOGexport_reports >= 1) {