release 1.1.12

git-svn-id: svn://192.168.202.10@10 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2006-07-07 15:30:10 +00:00
parent ca8e640156
commit 065b96d043
91 changed files with 4346 additions and 542 deletions
+152
View File
@@ -0,0 +1,152 @@
#!/usr/bin/perl
#
# AST_CRON_mix_recordings_MP3.pl
# runs every 5 minutes and mixes the call recordings in the monitor together
# and puts the resulting ALL file into the DONE directory in the "monitor" dir
# and converts the ALL file to GSM format to save space.
#
# soxmix is REQUIRED to use this script, soxmix is available only as part of
# the sox audio package, and only in newer versions. Make sure you have soxmix
# installed properly and in your path
#
# put an entry into the cron of of your asterisk machine to run this script
# every 5 minutes or however often you desire
#
# make sure that the following directories exist:
# /var/spool/asterisk/monitor # default Asterisk recording directory
# /var/spool/asterisk/monitor/DONE # where the combined files are put
# /var/spool/asterisk/monitor/ORIG # where the original in/out files are put
#
# This program assumes that recordings are saved as .wav
# should be easy to change this code if you use .gsm instead
#
# This program also sends the ALL combined file to an FTP server for archival
# purposes, you can comment out the Net::Ping and Net::FTP lines as well as the
# file transfer section of the code to deactivate remote copying of the
# recording files
#
# Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
# Contributions by Mike Lord <mike@channelblend.com>
#
# 51021-1058 - Added quotes around CLI executed commands
# 51122-1455 - Added soxmix and sox binary path check
# 60616-1027 - Modified to convert to MP3 format
#
#$v=1;
# Customize variables for FTP
$FTP_host = '10.0.0.4';
$FTP_user = 'cron';
$FTP_pass = 'test';
$FTP_dir = 'recordings';
$FTP_port = '21';
### directory where in/out recordings are saved to by Asterisk
$dir1 = '/var/spool/asterisk/monitor';
$soxmixbin = '';
if ( -e ('/usr/bin/soxmix')) {$soxmixbin = '/usr/bin/soxmix';}
else
{
if ( -e ('/usr/local/bin/soxmix')) {$soxmixbin = '/usr/local/bin/soxmix';}
else
{
print "Can't find soxmix binary! Exiting...\n";
exit;
}
}
$lamebin = '';
if ( -e ('/usr/bin/lame')) {$lamebin = '/usr/bin/lame';}
else
{
if ( -e ('/usr/local/bin/lame')) {$lamebin = '/usr/local/bin/lame';}
else
{
print "Can't find lame binary! Exiting...\n";
exit;
}
}
use Net::Ping;
use Net::FTP;
opendir(FILE, "$dir1/");
@FILES = readdir(FILE);
$i=0;
foreach(@FILES)
{
$size1 = 0;
$size2 = 0;
if ( (length($FILES[$i]) > 4) && (!-d $FILES[$i]) )
{
$size1 = (-s "$dir1/$FILES[$i]");
if ($v) {print "$FILES[$i] $size1\n";}
sleep(1);
$size2 = (-s "$dir1/$FILES[$i]");
if ($v) {print "$FILES[$i] $size2\n\n";}
if ( ($FILES[$i] !~ /out\.wav/i) && ($size1 eq $size2) && (length($FILES[$i]) > 4))
{
$INfile = $FILES[$i];
$OUTfile = $FILES[$i];
$OUTfile =~ s/-in\.wav/-out.wav/gi;
$ALLfile = $FILES[$i];
$ALLfile =~ s/-in\.wav/-all.wav/gi;
$MP3file = $ALLfile;
$MP3file =~ s/-all\.wav/-all.mp3/gi;
if ($v) {print "|$INfile| |$OUTfile| |$ALLfile|\n\n";}
`$soxmixbin "$dir1/$INfile" "$dir1/$OUTfile" "$dir1/$ALLfile"`;
if ($v) {print "|$INfile| |$OUTfile| |$ALLfile|\n\n";}
if (!$T)
{
`mv -f "$dir1/$INfile" "$dir1/ORIG/$INfile"`;
`mv -f "$dir1/$OUTfile" "$dir1/ORIG/$OUTfile"`;
`mv -f "$dir1/$ALLfile" "$dir1/DONE/$ALLfile"`;
}
else
{
`cp -f "$dir1/$ALLfile" "$dir1/DONE/$ALLfile"`;
}
`$lamebin -b 16 -m m --silent "$dir1/DONE/$ALLfile" "$dir1/DONE/$MP3file"`;
if (!$T)
{
`rm -f "$dir1/DONE/$ALLfile"`;
}
if($DB){print STDERR "\n|/usr/bin/sox $live_folder/$filename[$k]$WAV $arch_folder/$filename[$k]$GSM|\n";}
chmod 0755, "$dir1/DONE/$MP3file";
### BEGIN Remote file transfer
# $p = Net::Ping->new();
# $ping_good = $p->ping("$FTP_host");
# if ($ping_good)
# {
$ftp = Net::FTP->new("$FTP_host", Port => $FTP_port, Debug => 0, Passive => 1);
$ftp->login("$FTP_user","$FTP_pass");
$ftp->cwd("$FTP_dir");
$ftp->binary();
$ftp->put("$dir1/DONE/$MP3file", "$MP3file");
$ftp->quit;
# }
### END Remote file transfer
}
}
$i++;
}
if ($v) {print "DONE... EXITING\n\n";}
exit;
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
+33 -11
View File
@@ -3,6 +3,11 @@
### ###
### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 ### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
### ###
# CHANGES
#
# 60619-1714 - Added variable filtering to eliminate SQL injection attack threat
# - Added required user/pass to gain access to this page
#
require("dbconnect.php"); require("dbconnect.php");
@@ -18,6 +23,23 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_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;";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$auth=$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;
}
$NOW_DATE = date("Y-m-d"); $NOW_DATE = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
$STARTtime = date("U"); $STARTtime = date("U");
@@ -63,7 +85,7 @@ echo "<SELECT SIZE=1 NAME=group>\n";
} }
echo "</SELECT>\n"; echo "</SELECT>\n";
echo "<INPUT TYPE=submit NAME=SUBMIT VALUE=SUBMIT>\n"; echo "<INPUT TYPE=submit NAME=SUBMIT VALUE=SUBMIT>\n";
echo " &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href=\"./admin.php?ADD=3111&group_id=$group\">MODIFY</a> \n"; echo "<FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href=\"./admin.php?ADD=3111&group_id=$group\">MODIFY</a> | <a href=\"./server_stats.php\">REPORTS</a> </FONT>\n";
echo "</FORM>\n\n"; echo "</FORM>\n\n";
echo "<PRE><FONT SIZE=2>\n\n"; echo "<PRE><FONT SIZE=2>\n\n";
@@ -84,7 +106,7 @@ echo "VICIDIAL: Auto-dial Closer Stats $NOW_TIME\n";
echo "\n"; echo "\n";
echo "---------- TOTALS\n"; echo "---------- TOTALS\n";
$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date 00:00:01' and call_date <= '$query_date 23:59:59' and campaign_id='$group';"; $stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date 00:00:01' and call_date <= '$query_date 23:59:59' and campaign_id='" . mysql_real_escape_string($group) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -100,7 +122,7 @@ echo "Average Call Length for all Calls in seconds: $average_hold_seconds\n";
echo "\n"; echo "\n";
echo "---------- DROPS\n"; echo "---------- DROPS\n";
$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date 00:00:01' and call_date <= '$query_date 23:59:59' and campaign_id='$group' and status='DROP' and (length_in_sec <= 999 or length_in_sec is null);"; $stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date 00:00:01' and call_date <= '$query_date 23:59:59' and campaign_id='" . mysql_real_escape_string($group) . "' and status='DROP' and (length_in_sec <= 999 or length_in_sec is null);";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -126,7 +148,7 @@ echo "+--------------------------+------------+--------+--------+\n";
echo "| USER | CALLS | TIME M | AVRG M |\n"; echo "| USER | CALLS | TIME M | AVRG M |\n";
echo "+--------------------------+------------+--------+--------+\n"; echo "+--------------------------+------------+--------+--------+\n";
$stmt="select vicidial_closer_log.user,full_name,count(*),sum(length_in_sec),avg(length_in_sec) from vicidial_closer_log,vicidial_users where call_date >= '$query_date 00:00:01' and call_date <= '$query_date 23:59:59' and campaign_id='$group' and vicidial_closer_log.user is not null and length_in_sec is not null and length_in_sec > 4 and vicidial_closer_log.user=vicidial_users.user group by vicidial_closer_log.user;"; $stmt="select vicidial_closer_log.user,full_name,count(*),sum(length_in_sec),avg(length_in_sec) from vicidial_closer_log,vicidial_users where call_date >= '$query_date 00:00:01' and call_date <= '$query_date 23:59:59' and campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_closer_log.user is not null and length_in_sec is not null and length_in_sec > 4 and vicidial_closer_log.user=vicidial_users.user group by vicidial_closer_log.user;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$users_to_print = mysql_num_rows($rslt); $users_to_print = mysql_num_rows($rslt);
@@ -182,14 +204,14 @@ $i=0;
$h=0; $h=0;
while ($i <= 96) while ($i <= 96)
{ {
$stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date $h:00:00' and call_date <= '$query_date $h:14:59' and campaign_id='$group';"; $stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date $h:00:00' and call_date <= '$query_date $h:14:59' and campaign_id='" . mysql_real_escape_string($group) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$hour_count[$i] = $row[0]; $hour_count[$i] = $row[0];
if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];} if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
if ($hour_count[$i] > 0) {$last_full_record = $i;} if ($hour_count[$i] > 0) {$last_full_record = $i;}
$stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date $h:00:00' and call_date <= '$query_date $h:14:59' and campaign_id='$group' and status='DROP';"; $stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date $h:00:00' and call_date <= '$query_date $h:14:59' and campaign_id='" . mysql_real_escape_string($group) . "' and status='DROP';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -204,35 +226,35 @@ while ($i <= 96)
$hour_count[$i] = $row[0]; $hour_count[$i] = $row[0];
if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];} if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
if ($hour_count[$i] > 0) {$last_full_record = $i;} if ($hour_count[$i] > 0) {$last_full_record = $i;}
$stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date $h:15:00' and call_date <= '$query_date $h:29:59' and campaign_id='$group' and status='DROP';"; $stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date $h:15:00' and call_date <= '$query_date $h:29:59' and campaign_id='" . mysql_real_escape_string($group) . "' and status='DROP';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$drop_count[$i] = $row[0]; $drop_count[$i] = $row[0];
$i++; $i++;
$stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date $h:30:00' and call_date <= '$query_date $h:44:59' and campaign_id='$group';"; $stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date $h:30:00' and call_date <= '$query_date $h:44:59' and campaign_id='" . mysql_real_escape_string($group) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$hour_count[$i] = $row[0]; $hour_count[$i] = $row[0];
if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];} if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
if ($hour_count[$i] > 0) {$last_full_record = $i;} if ($hour_count[$i] > 0) {$last_full_record = $i;}
$stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date $h:30:00' and call_date <= '$query_date $h:44:59' and campaign_id='$group' and status='DROP';"; $stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date $h:30:00' and call_date <= '$query_date $h:44:59' and campaign_id='" . mysql_real_escape_string($group) . "' and status='DROP';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$drop_count[$i] = $row[0]; $drop_count[$i] = $row[0];
$i++; $i++;
$stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date $h:45:00' and call_date <= '$query_date $h:59:59' and campaign_id='$group';"; $stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date $h:45:00' and call_date <= '$query_date $h:59:59' and campaign_id='" . mysql_real_escape_string($group) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$hour_count[$i] = $row[0]; $hour_count[$i] = $row[0];
if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];} if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
if ($hour_count[$i] > 0) {$last_full_record = $i;} if ($hour_count[$i] > 0) {$last_full_record = $i;}
$stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date $h:45:00' and call_date <= '$query_date $h:59:59' and campaign_id='$group' and status='DROP';"; $stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date $h:45:00' and call_date <= '$query_date $h:59:59' and campaign_id='" . mysql_real_escape_string($group) . "' and status='DROP';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
+35 -13
View File
@@ -3,6 +3,11 @@
### ###
### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 ### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
### ###
# CHANGES
#
# 60619-1718 - Added variable filtering to eliminate SQL injection attack threat
# - Added required user/pass to gain access to this page
#
header ("Content-type: text/html; charset=utf-8"); header ("Content-type: text/html; charset=utf-8");
@@ -20,6 +25,23 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_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;";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$auth=$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;
}
$NOW_DATE = date("Y-m-d"); $NOW_DATE = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
$STARTtime = date("U"); $STARTtime = date("U");
@@ -65,7 +87,7 @@ echo "<SELECT SIZE=1 NAME=group>\n";
} }
echo "</SELECT>\n"; echo "</SELECT>\n";
echo "<INPUT type=submit NAME=SUBMIT VALUE=SUBMIT>\n"; echo "<INPUT type=submit NAME=SUBMIT VALUE=SUBMIT>\n";
echo " &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href=\"./admin.php?ADD=34&campaign_id=$group\">MODIFY</a> \n"; echo "<FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href=\"./admin.php?ADD=34&campaign_id=$group\">MODIFY</a> | <a href=\"./server_stats.php\">REPORTS</a> </FONT>\n";
echo "</FORM>\n\n"; echo "</FORM>\n\n";
echo "<PRE><FONT SIZE=2>\n\n"; echo "<PRE><FONT SIZE=2>\n\n";
@@ -86,7 +108,7 @@ echo "VICIDIAL: Auto-dial Stats $NOW_TIME\n";
echo "\n"; echo "\n";
echo "---------- TOTALS\n"; echo "---------- TOTALS\n";
$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date 00:00:01' and call_date <= '$query_date 23:59:59' and campaign_id='$group';"; $stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date 00:00:01' and call_date <= '$query_date 23:59:59' and campaign_id='" . mysql_real_escape_string($group) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -102,7 +124,7 @@ echo "Average Call Length for all Calls in seconds: $average_hold_seconds\n";
echo "\n"; echo "\n";
echo "---------- DROPS\n"; echo "---------- DROPS\n";
$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date 00:00:01' and call_date <= '$query_date 23:59:59' and campaign_id='$group' and status='DROP' and (length_in_sec <= 60 or length_in_sec is null);"; $stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date 00:00:01' and call_date <= '$query_date 23:59:59' and campaign_id='" . mysql_real_escape_string($group) . "' and status='DROP' and (length_in_sec <= 60 or length_in_sec is null);";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -121,7 +143,7 @@ echo "Average Length for DROP Calls in seconds: $average_hold_seconds\n";
echo "\n"; echo "\n";
echo "---------- AUTO-DIAL NO ANSWERS\n"; echo "---------- AUTO-DIAL NO ANSWERS\n";
$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date 00:00:01' and call_date <= '$query_date 23:59:59' and campaign_id='$group' and status='NA' and (length_in_sec <= 60 or length_in_sec is null);"; $stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date 00:00:01' and call_date <= '$query_date 23:59:59' and campaign_id='" . mysql_real_escape_string($group) . "' and status='NA' and (length_in_sec <= 60 or length_in_sec is null);";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -147,7 +169,7 @@ echo "+--------------------------+------------+--------+--------+\n";
echo "| USER | CALLS | TIME M | AVRG M |\n"; echo "| USER | CALLS | TIME M | AVRG M |\n";
echo "+--------------------------+------------+--------+--------+\n"; echo "+--------------------------+------------+--------+--------+\n";
$stmt="select vicidial_log.user,full_name,count(*),sum(length_in_sec),avg(length_in_sec) from vicidial_log,vicidial_users where call_date >= '$query_date 00:00:01' and call_date <= '$query_date 23:59:59' and campaign_id='$group' and vicidial_log.user is not null and length_in_sec is not null and length_in_sec > 4 and vicidial_log.user=vicidial_users.user group by vicidial_log.user;"; $stmt="select vicidial_log.user,full_name,count(*),sum(length_in_sec),avg(length_in_sec) from vicidial_log,vicidial_users where call_date >= '$query_date 00:00:01' and call_date <= '$query_date 23:59:59' and campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_log.user is not null and length_in_sec is not null and length_in_sec > 4 and vicidial_log.user=vicidial_users.user group by vicidial_log.user;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$users_to_print = mysql_num_rows($rslt); $users_to_print = mysql_num_rows($rslt);
@@ -203,14 +225,14 @@ $i=0;
$h=0; $h=0;
while ($i <= 96) while ($i <= 96)
{ {
$stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:00:00' and call_date <= '$query_date $h:14:59' and campaign_id='$group';"; $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:00:00' and call_date <= '$query_date $h:14:59' and campaign_id='" . mysql_real_escape_string($group) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$hour_count[$i] = $row[0]; $hour_count[$i] = $row[0];
if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];} if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
if ($hour_count[$i] > 0) {$last_full_record = $i;} if ($hour_count[$i] > 0) {$last_full_record = $i;}
$stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:00:00' and call_date <= '$query_date $h:14:59' and campaign_id='$group' and status='DROP';"; $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:00:00' and call_date <= '$query_date $h:14:59' and campaign_id='" . mysql_real_escape_string($group) . "' and status='DROP';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -218,42 +240,42 @@ while ($i <= 96)
$i++; $i++;
$stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:15:00' and call_date <= '$query_date $h:29:59' and campaign_id='$group';"; $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:15:00' and call_date <= '$query_date $h:29:59' and campaign_id='" . mysql_real_escape_string($group) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$hour_count[$i] = $row[0]; $hour_count[$i] = $row[0];
if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];} if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
if ($hour_count[$i] > 0) {$last_full_record = $i;} if ($hour_count[$i] > 0) {$last_full_record = $i;}
$stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:15:00' and call_date <= '$query_date $h:29:59' and campaign_id='$group' and status='DROP';"; $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:15:00' and call_date <= '$query_date $h:29:59' and campaign_id='" . mysql_real_escape_string($group) . "' and status='DROP';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$drop_count[$i] = $row[0]; $drop_count[$i] = $row[0];
$i++; $i++;
$stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:30:00' and call_date <= '$query_date $h:44:59' and campaign_id='$group';"; $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:30:00' and call_date <= '$query_date $h:44:59' and campaign_id='" . mysql_real_escape_string($group) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$hour_count[$i] = $row[0]; $hour_count[$i] = $row[0];
if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];} if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
if ($hour_count[$i] > 0) {$last_full_record = $i;} if ($hour_count[$i] > 0) {$last_full_record = $i;}
$stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:30:00' and call_date <= '$query_date $h:44:59' and campaign_id='$group' and status='DROP';"; $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:30:00' and call_date <= '$query_date $h:44:59' and campaign_id='" . mysql_real_escape_string($group) . "' and status='DROP';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$drop_count[$i] = $row[0]; $drop_count[$i] = $row[0];
$i++; $i++;
$stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:45:00' and call_date <= '$query_date $h:59:59' and campaign_id='$group';"; $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:45:00' and call_date <= '$query_date $h:59:59' and campaign_id='" . mysql_real_escape_string($group) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$hour_count[$i] = $row[0]; $hour_count[$i] = $row[0];
if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];} if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
if ($hour_count[$i] > 0) {$last_full_record = $i;} if ($hour_count[$i] > 0) {$last_full_record = $i;}
$stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:45:00' and call_date <= '$query_date $h:59:59' and campaign_id='$group' and status='DROP';"; $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:45:00' and call_date <= '$query_date $h:59:59' and campaign_id='" . mysql_real_escape_string($group) . "' and status='DROP';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
+24 -2
View File
@@ -3,6 +3,11 @@
### ###
### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 ### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
### ###
# CHANGES
#
# 60619-1654 - Added variable filtering to eliminate SQL injection attack threat
# - Added required user/pass to gain access to this page
#
require("dbconnect.php"); require("dbconnect.php");
@@ -16,6 +21,23 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_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;";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$auth=$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;
}
$NOW_DATE = date("Y-m-d"); $NOW_DATE = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
$STARTtime = date("U"); $STARTtime = date("U");
@@ -85,7 +107,7 @@ echo "VICIDIAL: Live Current Hopper List $NOW_TIME\n";
echo "\n"; echo "\n";
echo "---------- TOTALS\n"; echo "---------- TOTALS\n";
$stmt="select count(*) from vicidial_hopper where campaign_id='$group';"; $stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -104,7 +126,7 @@ echo "+------+-----------+------------+-------+--------+-------+--------+\n";
echo "| | LEAD_ID | PHONE NUM | STATE | STATUS | COUNT | GMT |\n"; echo "| | LEAD_ID | PHONE NUM | STATE | STATUS | COUNT | GMT |\n";
echo "+------+-----------+------------+-------+--------+-------+--------+\n"; echo "+------+-----------+------------+-------+--------+-------+--------+\n";
$stmt="select vicidial_hopper.lead_id,phone_number,vicidial_hopper.state,vicidial_list.status,called_count,vicidial_hopper.gmt_offset_now from vicidial_hopper,vicidial_list where vicidial_hopper.campaign_id='$group' and vicidial_hopper.lead_id=vicidial_list.lead_id order by hopper_id limit 2000;"; $stmt="select vicidial_hopper.lead_id,phone_number,vicidial_hopper.state,vicidial_list.status,called_count,vicidial_hopper.gmt_offset_now from vicidial_hopper,vicidial_list where vicidial_hopper.campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_hopper.lead_id=vicidial_list.lead_id order by hopper_id limit 2000;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$users_to_print = mysql_num_rows($rslt); $users_to_print = mysql_num_rows($rslt);
+9 -4
View File
@@ -16,6 +16,10 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
$query_date = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$query_date);
# AST GUI database administration # AST GUI database administration
# AST_admin_log_display.php # AST_admin_log_display.php
# #
@@ -23,14 +27,15 @@ if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
# 50325-0932 - First build # 50325-0932 - First build
# 51123-1443 - removed globals=on requirement # 51123-1443 - removed globals=on requirement
# 60421-1229 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60421-1229 - check GET/POST vars lines with isset to not trigger PHP NOTICES
# 60620-1044 - Added variable filtering to eliminate SQL injection attack threat
#
$version = '0.0.4';
$version = '0.0.3'; $build = '60620-1044';
$build = '60421-1229';
$STARTtime = date("U"); $STARTtime = date("U");
$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7;"; $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 8;";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
+25 -3
View File
@@ -3,6 +3,11 @@
### ###
### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 ### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
### ###
# CHANGES
#
# 60619-1711 - Added variable filtering to eliminate SQL injection attack threat
# - Added required user/pass to gain access to this page
#
require("dbconnect.php"); require("dbconnect.php");
@@ -20,6 +25,23 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_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;";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$auth=$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;
}
$NOW_DATE = date("Y-m-d"); $NOW_DATE = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
$STARTtime = date("U"); $STARTtime = date("U");
@@ -69,7 +91,7 @@ echo "<option selected value=\"AM\">AM</option>\n";
echo "<option value=\"PM\">PM</option>\n"; echo "<option value=\"PM\">PM</option>\n";
echo "</SELECT>\n"; echo "</SELECT>\n";
echo "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n"; echo "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n";
echo " &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href=\"./admin.php?ADD=34&campaign_id=$group\">MODIFY</a> \n"; echo "<FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href=\"./admin.php?ADD=34&campaign_id=$group\">MODIFY</a> | <a href=\"./server_stats.php\">REPORTS</a> </FONT>\n";
echo "</FORM>\n\n"; echo "</FORM>\n\n";
echo "<PRE><FONT SIZE=2>\n"; echo "<PRE><FONT SIZE=2>\n";
@@ -108,7 +130,7 @@ echo "+-----------------+--------+--------+--------+--------+------+------+-----
echo "| USER NAME | ID | CALLS | TALK | TALKAVG| A | B | DC | DNC | N | NI | SALE |\n"; echo "| USER NAME | ID | CALLS | TALK | TALKAVG| A | B | DC | DNC | N | NI | SALE |\n";
echo "+-----------------+--------+--------+--------+--------+------+------+------+------+------+------+------+\n"; echo "+-----------------+--------+--------+--------+--------+------+------+------+------+------+------+------+\n";
$stmt="select count(*) as calls,sum(length_in_sec) as talk,full_name,vicidial_users.user,avg(length_in_sec) from vicidial_users,vicidial_log where call_date <= '$query_date_END' and call_date >= '$query_date_BEGIN' and vicidial_users.user=vicidial_log.user and campaign_id='$group' group by full_name order by calls desc limit 1000;"; $stmt="select count(*) as calls,sum(length_in_sec) as talk,full_name,vicidial_users.user,avg(length_in_sec) from vicidial_users,vicidial_log where call_date <= '$query_date_END' and call_date >= '$query_date_BEGIN' and vicidial_users.user=vicidial_log.user and campaign_id='" . mysql_real_escape_string($group) . "' group by full_name order by calls desc limit 1000;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$rows_to_print = mysql_num_rows($rslt); $rows_to_print = mysql_num_rows($rslt);
@@ -150,7 +172,7 @@ $k=0;
while($k < $i) while($k < $i)
{ {
$ctA[$k]="0 "; $ctB[$k]="0 "; $ctDC[$k]="0 "; $ctDNC[$k]="0 "; $ctN[$k]="0 "; $ctNI[$k]="0 "; $ctSALE[$k]="0 "; $ctA[$k]="0 "; $ctB[$k]="0 "; $ctDC[$k]="0 "; $ctDNC[$k]="0 "; $ctN[$k]="0 "; $ctNI[$k]="0 "; $ctSALE[$k]="0 ";
$stmt="select count(*),status from vicidial_log where call_date <= '$query_date_END' and call_date >= '$query_date_BEGIN' and user='$user[$k]' and campaign_id='$group' group by status;"; $stmt="select count(*),status from vicidial_log where call_date <= '$query_date_END' and call_date >= '$query_date_BEGIN' and user='$user[$k]' and campaign_id='" . mysql_real_escape_string($group) . "' group by status;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$rows_to_print = mysql_num_rows($rslt); $rows_to_print = mysql_num_rows($rslt);
+25 -3
View File
@@ -3,6 +3,11 @@
### ###
### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 ### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
### ###
# CHANGES
#
# 60619-1712 - Added variable filtering to eliminate SQL injection attack threat
# - Added required user/pass to gain access to this page
#
require("dbconnect.php"); require("dbconnect.php");
@@ -20,6 +25,23 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_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;";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$auth=$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;
}
$NOW_DATE = date("Y-m-d"); $NOW_DATE = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
$STARTtime = date("U"); $STARTtime = date("U");
@@ -69,7 +91,7 @@ echo "<option selected value=\"AM\">AM</option>\n";
echo "<option value=\"PM\">PM</option>\n"; echo "<option value=\"PM\">PM</option>\n";
echo "</SELECT>\n"; echo "</SELECT>\n";
echo "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n"; echo "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n";
echo " &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href=\"./admin.php?ADD=34&campaign_id=$group\">MODIFY</a> \n"; echo "<FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href=\"./admin.php?ADD=34&campaign_id=$group\">MODIFY</a> | <a href=\"./server_stats.php\">REPORTS</a> </FONT>\n";
echo "</FORM>\n\n"; echo "</FORM>\n\n";
echo "<PRE><FONT SIZE=2>\n"; echo "<PRE><FONT SIZE=2>\n";
@@ -108,7 +130,7 @@ echo "+-----------------+--------+--------+--------+--------+--------+--------+-
echo "| USER NAME | ID | CALLS | TIME | PAUSE | PAUSAVG| WAIT | WAITAVG| TALK | TALKAVG| DISPO | DISPAVG| A | B | DC | DNC | N | NI | CB | SALE |\n"; echo "| USER NAME | ID | CALLS | TIME | PAUSE | PAUSAVG| WAIT | WAITAVG| TALK | TALKAVG| DISPO | DISPAVG| A | B | DC | DNC | N | NI | CB | SALE |\n";
echo "+-----------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+------+------+------+------+------+------+------+------+\n"; echo "+-----------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+------+------+------+------+------+------+------+------+\n";
$stmt="select count(*) as calls,sum(talk_sec) as talk,full_name,vicidial_users.user,avg(talk_sec),sum(pause_sec),avg(pause_sec),sum(wait_sec),avg(wait_sec),sum(dispo_sec),avg(dispo_sec) from vicidial_users,vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=vicidial_agent_log.user and campaign_id='$group' and pause_sec<48800 and wait_sec<48800 and talk_sec<48800 and dispo_sec<48800 group by full_name order by calls desc limit 1000;"; $stmt="select count(*) as calls,sum(talk_sec) as talk,full_name,vicidial_users.user,avg(talk_sec),sum(pause_sec),avg(pause_sec),sum(wait_sec),avg(wait_sec),sum(dispo_sec),avg(dispo_sec) from vicidial_users,vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=vicidial_agent_log.user and campaign_id='" . mysql_real_escape_string($group) . "' and pause_sec<48800 and wait_sec<48800 and talk_sec<48800 and dispo_sec<48800 group by full_name order by calls desc limit 1000;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$rows_to_print = mysql_num_rows($rslt); $rows_to_print = mysql_num_rows($rslt);
@@ -232,7 +254,7 @@ $k=0;
while($k < $i) while($k < $i)
{ {
$ctA[$k]="0 "; $ctB[$k]="0 "; $ctDC[$k]="0 "; $ctDNC[$k]="0 "; $ctN[$k]="0 "; $ctNI[$k]="0 "; $ctSALE[$k]="0 "; $ctCB[$k]="0 "; $ctA[$k]="0 "; $ctB[$k]="0 "; $ctDC[$k]="0 "; $ctDNC[$k]="0 "; $ctN[$k]="0 "; $ctNI[$k]="0 "; $ctSALE[$k]="0 "; $ctCB[$k]="0 ";
$stmt="select count(*),status from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and user='$user[$k]' and campaign_id='$group' group by status;"; $stmt="select count(*),status from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and user='$user[$k]' and campaign_id='" . mysql_real_escape_string($group) . "' group by status;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$rows_to_print = mysql_num_rows($rslt); $rows_to_print = mysql_num_rows($rslt);
+25 -3
View File
@@ -3,6 +3,11 @@
### ###
### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 ### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
### ###
# CHANGES
#
# 60619-1729 - Added variable filtering to eliminate SQL injection attack threat
# - Added required user/pass to gain access to this page
#
require("dbconnect.php"); require("dbconnect.php");
@@ -20,6 +25,23 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_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;";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$auth=$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;
}
$NOW_DATE = date("Y-m-d"); $NOW_DATE = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
$STARTtime = date("U"); $STARTtime = date("U");
@@ -77,7 +99,7 @@ echo "---------- AGENT TIME SHEET: $agent - $full_name -------------\n\n";
if ($calls_summary) if ($calls_summary)
{ {
$stmt="select count(*) as calls,sum(talk_sec) as talk,avg(talk_sec),sum(pause_sec),avg(pause_sec),sum(wait_sec),avg(wait_sec),sum(dispo_sec),avg(dispo_sec) from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and user='$agent' and pause_sec<48800 and wait_sec<48800 and talk_sec<48800 and dispo_sec<48800 limit 1;"; $stmt="select count(*) as calls,sum(talk_sec) as talk,avg(talk_sec),sum(pause_sec),avg(pause_sec),sum(wait_sec),avg(wait_sec),sum(dispo_sec),avg(dispo_sec) from vicidial_agent_log where event_time <= '" . mysql_real_escape_string($query_date_END) . "' and event_time >= '" . mysql_real_escape_string($query_date_BEGIN) . "' and user='" . mysql_real_escape_string($agent) . "' and pause_sec<48800 and wait_sec<48800 and talk_sec<48800 and dispo_sec<48800 limit 1;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -215,7 +237,7 @@ else
} }
$stmt="select event_time,UNIX_TIMESTAMP(event_time) from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and user='$agent' order by event_time limit 1;"; $stmt="select event_time,UNIX_TIMESTAMP(event_time) from vicidial_agent_log where event_time <= '" . mysql_real_escape_string($query_date_END) . "' and event_time >= '" . mysql_real_escape_string($query_date_BEGIN) . "' and user='" . mysql_real_escape_string($agent) . "' order by event_time limit 1;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -223,7 +245,7 @@ $row=mysql_fetch_row($rslt);
echo "FIRST LOGIN: $row[0]\n"; echo "FIRST LOGIN: $row[0]\n";
$start = $row[1]; $start = $row[1];
$stmt="select event_time,UNIX_TIMESTAMP(event_time) from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and user='$agent' order by event_time desc limit 1;"; $stmt="select event_time,UNIX_TIMESTAMP(event_time) from vicidial_agent_log where event_time <= '" . mysql_real_escape_string($query_date_END) . "' and event_time >= '" . mysql_real_escape_string($query_date_BEGIN) . "' and user='" . mysql_real_escape_string($agent) . "' order by event_time desc limit 1;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
+25 -3
View File
@@ -3,6 +3,11 @@
### ###
### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 ### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
### ###
# CHANGES
#
# 60619-1721 - Added variable filtering to eliminate SQL injection attack threat
# - Added required user/pass to gain access to this page
#
require("dbconnect.php"); require("dbconnect.php");
@@ -20,6 +25,23 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_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;";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$auth=$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;
}
$NOW_DATE = date("Y-m-d"); $NOW_DATE = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
$STARTtime = date("U"); $STARTtime = date("U");
@@ -77,7 +99,7 @@ echo "---------- AGENT TIME SHEET: $agent - $full_name -------------\n\n";
if ($calls_summary) if ($calls_summary)
{ {
$stmt="select count(*) as calls,sum(talk_sec) as talk,avg(talk_sec),sum(pause_sec),avg(pause_sec),sum(wait_sec),avg(wait_sec),sum(dispo_sec),avg(dispo_sec) from vicidial_agent_log_archive where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and user='$agent' and pause_sec<48800 and wait_sec<48800 and talk_sec<48800 and dispo_sec<48800 limit 1;"; $stmt="select count(*) as calls,sum(talk_sec) as talk,avg(talk_sec),sum(pause_sec),avg(pause_sec),sum(wait_sec),avg(wait_sec),sum(dispo_sec),avg(dispo_sec) from vicidial_agent_log_archive where event_time <= '" . mysql_real_escape_string($query_date_END) . "' and event_time >= '" . mysql_real_escape_string($query_date_BEGIN) . "' and user='" . mysql_real_escape_string($agent) . "' and pause_sec<48800 and wait_sec<48800 and talk_sec<48800 and dispo_sec<48800 limit 1;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -215,7 +237,7 @@ else
} }
$stmt="select event_time,UNIX_TIMESTAMP(event_time) from vicidial_agent_log_archive where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and user='$agent' order by event_time limit 1;"; $stmt="select event_time,UNIX_TIMESTAMP(event_time) from vicidial_agent_log_archive where event_time <= '" . mysql_real_escape_string($query_date_END) . "' and event_time >= '" . mysql_real_escape_string($query_date_BEGIN) . "' and user='" . mysql_real_escape_string($agent) . "' order by event_time limit 1;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -223,7 +245,7 @@ $row=mysql_fetch_row($rslt);
echo "FIRST LOGIN: $row[0]\n"; echo "FIRST LOGIN: $row[0]\n";
$start = $row[1]; $start = $row[1];
$stmt="select event_time,UNIX_TIMESTAMP(event_time) from vicidial_agent_log_archive where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and user='$agent' order by event_time desc limit 1;"; $stmt="select event_time,UNIX_TIMESTAMP(event_time) from vicidial_agent_log_archive where event_time <= '" . mysql_real_escape_string($query_date_END) . "' and event_time >= '" . mysql_real_escape_string($query_date_BEGIN) . "' and user='" . mysql_real_escape_string($agent) . "' order by event_time desc limit 1;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
+34 -12
View File
@@ -3,6 +3,11 @@
### ###
### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 ### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
### ###
# CHANGES
#
# 60619-1717 - Added variable filtering to eliminate SQL injection attack threat
# - Added required user/pass to gain access to this page
#
require("dbconnect.php"); require("dbconnect.php");
@@ -18,6 +23,23 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_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;";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$auth=$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;
}
$NOW_DATE = date("Y-m-d"); $NOW_DATE = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
$STARTtime = date("U"); $STARTtime = date("U");
@@ -63,7 +85,7 @@ echo "<SELECT SIZE=1 NAME=group>\n";
} }
echo "</SELECT>\n"; echo "</SELECT>\n";
echo "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n"; echo "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n";
echo " &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href=\"./admin.php?ADD=34&campaign_id=$group\">MODIFY</a> \n"; echo "<FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href=\"./admin.php?ADD=34&campaign_id=$group\">MODIFY</a> | <a href=\"./server_stats.php\">REPORTS</a> </FONT>\n";
echo "</FORM>\n\n"; echo "</FORM>\n\n";
echo "<PRE><FONT SIZE=2>\n\n"; echo "<PRE><FONT SIZE=2>\n\n";
@@ -84,7 +106,7 @@ echo "VICIDIAL: Park Stats $NOW_TIME\n";
echo "\n"; echo "\n";
echo "---------- TOTALS\n"; echo "---------- TOTALS\n";
$stmt="select count(*),sum(parked_sec) from park_log where parked_time >= '$query_date 00:00:01' and parked_time <= '$query_date 23:59:59' and status ='HUNGUP' and channel_group='$group';"; $stmt="select count(*),sum(parked_sec) from park_log where parked_time >= '$query_date 00:00:01' and parked_time <= '$query_date 23:59:59' and status ='HUNGUP' and channel_group='" . mysql_real_escape_string($group) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -100,7 +122,7 @@ echo "Average Hold Time(seconds) for all Calls: $average_hold_seconds\n";
echo "\n"; echo "\n";
echo "---------- DROPS\n"; echo "---------- DROPS\n";
$stmt="select count(*),sum(parked_sec) from park_log where parked_time >= '$query_date 00:00:01' and parked_time <= '$query_date 23:59:59' and status ='HUNGUP' and channel_group='$group' and (talked_sec < 5 or talked_sec is null);"; $stmt="select count(*),sum(parked_sec) from park_log where parked_time >= '$query_date 00:00:01' and parked_time <= '$query_date 23:59:59' and status ='HUNGUP' and channel_group='" . mysql_real_escape_string($group) . "' and (talked_sec < 5 or talked_sec is null);";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -126,7 +148,7 @@ echo "+--------------------------+------------+--------+--------+\n";
echo "| USER | CALLS | TIME M | AVRG M |\n"; echo "| USER | CALLS | TIME M | AVRG M |\n";
echo "+--------------------------+------------+--------+--------+\n"; echo "+--------------------------+------------+--------+--------+\n";
$stmt="select park_log.user,full_name,count(*),sum(talked_sec),avg(talked_sec) from park_log,vicidial_users where parked_time >= '$query_date 00:00:01' and parked_time <= '$query_date 23:59:59' and status ='HUNGUP' and channel_group='$group' and park_log.user is not null and talked_sec is not null and talked_sec > 4 and park_log.user=vicidial_users.user group by park_log.user;"; $stmt="select park_log.user,full_name,count(*),sum(talked_sec),avg(talked_sec) from park_log,vicidial_users where parked_time >= '$query_date 00:00:01' and parked_time <= '$query_date 23:59:59' and status ='HUNGUP' and channel_group='" . mysql_real_escape_string($group) . "' and park_log.user is not null and talked_sec is not null and talked_sec > 4 and park_log.user=vicidial_users.user group by park_log.user;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$users_to_print = mysql_num_rows($rslt); $users_to_print = mysql_num_rows($rslt);
@@ -182,14 +204,14 @@ $i=0;
$h=0; $h=0;
while ($i <= 96) while ($i <= 96)
{ {
$stmt="select count(*) from park_log where parked_time >= '$query_date $h:00:00' and parked_time <= '$query_date $h:14:59' and status ='HUNGUP' and channel_group='$group';"; $stmt="select count(*) from park_log where parked_time >= '$query_date $h:00:00' and parked_time <= '$query_date $h:14:59' and status ='HUNGUP' and channel_group='" . mysql_real_escape_string($group) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$hour_count[$i] = $row[0]; $hour_count[$i] = $row[0];
if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];} if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
if ($hour_count[$i] > 0) {$last_full_record = $i;} if ($hour_count[$i] > 0) {$last_full_record = $i;}
$stmt="select count(*) from park_log where parked_time >= '$query_date $h:00:00' and parked_time <= '$query_date $h:14:59' and status ='HUNGUP' and channel_group='$group' and (talked_sec < 5 or talked_sec is null);"; $stmt="select count(*) from park_log where parked_time >= '$query_date $h:00:00' and parked_time <= '$query_date $h:14:59' and status ='HUNGUP' and channel_group='" . mysql_real_escape_string($group) . "' and (talked_sec < 5 or talked_sec is null);";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -197,42 +219,42 @@ while ($i <= 96)
$i++; $i++;
$stmt="select count(*) from park_log where parked_time >= '$query_date $h:15:00' and parked_time <= '$query_date $h:29:59' and status ='HUNGUP' and channel_group='$group';"; $stmt="select count(*) from park_log where parked_time >= '$query_date $h:15:00' and parked_time <= '$query_date $h:29:59' and status ='HUNGUP' and channel_group='" . mysql_real_escape_string($group) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$hour_count[$i] = $row[0]; $hour_count[$i] = $row[0];
if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];} if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
if ($hour_count[$i] > 0) {$last_full_record = $i;} if ($hour_count[$i] > 0) {$last_full_record = $i;}
$stmt="select count(*) from park_log where parked_time >= '$query_date $h:15:00' and parked_time <= '$query_date $h:29:59' and status ='HUNGUP' and channel_group='$group' and (talked_sec < 5 or talked_sec is null);"; $stmt="select count(*) from park_log where parked_time >= '$query_date $h:15:00' and parked_time <= '$query_date $h:29:59' and status ='HUNGUP' and channel_group='" . mysql_real_escape_string($group) . "' and (talked_sec < 5 or talked_sec is null);";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$drop_count[$i] = $row[0]; $drop_count[$i] = $row[0];
$i++; $i++;
$stmt="select count(*) from park_log where parked_time >= '$query_date $h:30:00' and parked_time <= '$query_date $h:44:59' and status ='HUNGUP' and channel_group='$group';"; $stmt="select count(*) from park_log where parked_time >= '$query_date $h:30:00' and parked_time <= '$query_date $h:44:59' and status ='HUNGUP' and channel_group='" . mysql_real_escape_string($group) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$hour_count[$i] = $row[0]; $hour_count[$i] = $row[0];
if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];} if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
if ($hour_count[$i] > 0) {$last_full_record = $i;} if ($hour_count[$i] > 0) {$last_full_record = $i;}
$stmt="select count(*) from park_log where parked_time >= '$query_date $h:30:00' and parked_time <= '$query_date $h:44:59' and status ='HUNGUP' and channel_group='$group' and (talked_sec < 5 or talked_sec is null);"; $stmt="select count(*) from park_log where parked_time >= '$query_date $h:30:00' and parked_time <= '$query_date $h:44:59' and status ='HUNGUP' and channel_group='" . mysql_real_escape_string($group) . "' and (talked_sec < 5 or talked_sec is null);";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$drop_count[$i] = $row[0]; $drop_count[$i] = $row[0];
$i++; $i++;
$stmt="select count(*) from park_log where parked_time >= '$query_date $h:45:00' and parked_time <= '$query_date $h:59:59' and status ='HUNGUP' and channel_group='$group';"; $stmt="select count(*) from park_log where parked_time >= '$query_date $h:45:00' and parked_time <= '$query_date $h:59:59' and status ='HUNGUP' and channel_group='" . mysql_real_escape_string($group) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$hour_count[$i] = $row[0]; $hour_count[$i] = $row[0];
if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];} if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
if ($hour_count[$i] > 0) {$last_full_record = $i;} if ($hour_count[$i] > 0) {$last_full_record = $i;}
$stmt="select count(*) from park_log where parked_time >= '$query_date $h:45:00' and parked_time <= '$query_date $h:59:59' and status ='HUNGUP' and channel_group='$group' and (talked_sec < 5 or talked_sec is null);"; $stmt="select count(*) from park_log where parked_time >= '$query_date $h:45:00' and parked_time <= '$query_date $h:59:59' and status ='HUNGUP' and channel_group='" . mysql_real_escape_string($group) . "' and (talked_sec < 5 or talked_sec is null);";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
+29 -6
View File
@@ -3,6 +3,11 @@
# #
# Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 # Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
# #
# CHANGES
#
# 60619-1732 - Added variable filtering to eliminate SQL injection attack threat
# - Added required user/pass to gain access to this page
#
require("dbconnect.php"); require("dbconnect.php");
@@ -20,6 +25,23 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_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;";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$auth=$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;
}
# path from root to where ploticus files will be stored # path from root to where ploticus files will be stored
$DOCroot = "$WeBServeRRooT/vicidial/ploticus/"; $DOCroot = "$WeBServeRRooT/vicidial/ploticus/";
@@ -73,6 +95,7 @@ echo "<option selected value=\"AM\">AM</option>\n";
echo "<option value=\"PM\">PM</option>\n"; echo "<option value=\"PM\">PM</option>\n";
echo "</SELECT>\n"; echo "</SELECT>\n";
echo "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n"; echo "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n";
echo "<FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href=\"./server_stats.php\">REPORTS</a> </FONT>\n";
echo "</FORM>\n\n"; echo "</FORM>\n\n";
echo "<PRE><FONT SIZE=2>\n"; echo "<PRE><FONT SIZE=2>\n";
@@ -107,7 +130,7 @@ echo "VICIDIAL: Server Performance $NOW_TIME\n";
echo "Time range: $query_date_BEGIN to $query_date_END\n\n"; echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
echo "---------- TOTALS, PEAKS and AVERAGES\n"; echo "---------- TOTALS, PEAKS and AVERAGES\n";
$stmt="select sysload from server_performance where start_time <= '$query_date_END' and start_time >= '$query_date_BEGIN' and server_ip='$group' order by sysload desc limit 1;"; $stmt="select sysload from server_performance where start_time <= '" . mysql_real_escape_string($query_date_END) . "' and start_time >= '" . mysql_real_escape_string($query_date_BEGIN) . "' and server_ip='" . mysql_real_escape_string($group) . "' order by sysload desc limit 1;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -115,14 +138,14 @@ $HIGHload = sprintf("%10s", $row[0]);
$HIGHmulti = intval($HIGHload / 100); $HIGHmulti = intval($HIGHload / 100);
#$HIGHmulti = ($HIGHload / 100); #$HIGHmulti = ($HIGHload / 100);
$stmt="select AVG(sysload),AVG(channels_total) from server_performance where start_time <= '$query_date_END' and start_time >= '$query_date_BEGIN' and server_ip='$group';"; $stmt="select AVG(sysload),AVG(channels_total) from server_performance where start_time <= '" . mysql_real_escape_string($query_date_END) . "' and start_time >= '" . mysql_real_escape_string($query_date_BEGIN) . "' and server_ip='" . mysql_real_escape_string($group) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$AVGload = sprintf("%10s", $row[0]); $AVGload = sprintf("%10s", $row[0]);
$AVGchannels = sprintf("%10s", $row[1]); $AVGchannels = sprintf("%10s", $row[1]);
$stmt="select AVG(cpu_user_percent),AVG(cpu_system_percent),AVG(cpu_idle_percent) from server_performance where start_time <= '$query_date_END' and start_time >= '$query_date_BEGIN' and server_ip='$group';"; $stmt="select AVG(cpu_user_percent),AVG(cpu_system_percent),AVG(cpu_idle_percent) from server_performance where start_time <= '" . mysql_real_escape_string($query_date_END) . "' and start_time >= '" . mysql_real_escape_string($query_date_BEGIN) . "' and server_ip='" . mysql_real_escape_string($group) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -130,13 +153,13 @@ $AVGcpuUSER = sprintf("%10s", $row[0]);
$AVGcpuSYSTEM = sprintf("%10s", $row[1]); $AVGcpuSYSTEM = sprintf("%10s", $row[1]);
$AVGcpuIDLE = sprintf("%10s", $row[2]); $AVGcpuIDLE = sprintf("%10s", $row[2]);
$stmt="select usedram from server_performance where start_time <= '$query_date_END' and start_time >= '$query_date_BEGIN' and server_ip='$group' order by usedram desc limit 1;"; $stmt="select usedram from server_performance where start_time <= '" . mysql_real_escape_string($query_date_END) . "' and start_time >= '" . mysql_real_escape_string($query_date_BEGIN) . "' and server_ip='" . mysql_real_escape_string($group) . "' order by usedram desc limit 1;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$USEDram = sprintf("%10s", $row[0]); $USEDram = sprintf("%10s", $row[0]);
$stmt="select count(*),SUM(length_in_min) from call_log where extension NOT IN('8365','8366','8367') and start_time <= '$query_date_END' and start_time >= '$query_date_BEGIN' and server_ip='$group';"; $stmt="select count(*),SUM(length_in_min) from call_log where extension NOT IN('8365','8366','8367') and start_time <= '" . mysql_real_escape_string($query_date_END) . "' and start_time >= '" . mysql_real_escape_string($query_date_BEGIN) . "' and server_ip='" . mysql_real_escape_string($group) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -173,7 +196,7 @@ $PNGfile = "$group$query_date$shift$filedate$PNG";
$HTMfp = fopen ("$DOCroot/$HTMfile", "a"); $HTMfp = fopen ("$DOCroot/$HTMfile", "a");
$DATfp = fopen ("$DOCroot/$DATfile", "a"); $DATfp = fopen ("$DOCroot/$DATfile", "a");
$stmt="select DATE_FORMAT(start_time,'%H:%i:%s') as timex,sysload,processes,channels_total,live_recordings,cpu_user_percent,cpu_system_percent from server_performance where server_ip='$group' and start_time <= '$query_date_END' and start_time >= '$query_date_BEGIN' order by timex;"; $stmt="select DATE_FORMAT(start_time,'%H:%i:%s') as timex,sysload,processes,channels_total,live_recordings,cpu_user_percent,cpu_system_percent from server_performance where server_ip='" . mysql_real_escape_string($group) . "' and start_time <= '" . mysql_real_escape_string($query_date_END) . "' and start_time >= '" . mysql_real_escape_string($query_date_BEGIN) . "' order by timex;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$rows_to_print = mysql_num_rows($rslt); $rows_to_print = mysql_num_rows($rslt);
+25 -6
View File
@@ -6,8 +6,10 @@
# live real-time stats for the VICIDIAL Auto-Dialer # live real-time stats for the VICIDIAL Auto-Dialer
# #
# changes: # changes:
# 50406-0920 Added Paused agents < 1 min (Chris Doyle) # 50406-0920 - Added Paused agents < 1 min (Chris Doyle)
# 60620-1040 - Added variable filtering to eliminate SQL injection attack threat
# - Added required user/pass to gain access to this page
#
header ("Content-type: text/html; charset=utf-8"); header ("Content-type: text/html; charset=utf-8");
@@ -25,6 +27,23 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_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;";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$auth=$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;
}
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
$STARTtime = date("U"); $STARTtime = date("U");
$epochSIXhoursAGO = ($STARTtime - 21600); $epochSIXhoursAGO = ($STARTtime - 21600);
@@ -66,19 +85,19 @@ if ($reset_counter > 7)
echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n";
echo"<META HTTP-EQUIV=Refresh CONTENT=\"4; URL=$PHP_SELF?server_ip=$server_ip&DB=$DB&reset_counter=$reset_counter\">\n"; echo"<META HTTP-EQUIV=Refresh CONTENT=\"4; URL=$PHP_SELF?server_ip=$server_ip&DB=$DB&reset_counter=$reset_counter\">\n";
echo "<TITLE>VICIDIAL: Time On VDAD</TITLE></HEAD><BODY BGCOLOR=WHITE>\n"; echo "<TITLE>VICIDIAL: Time On VDAD</TITLE></HEAD><BODY BGCOLOR=WHITE>\n";
echo "<PRE><FONT SIZE=3>\n\n"; echo "<PRE><FONT SIZE=3>";
################################################################################### ###################################################################################
###### TIME ON SYSTEM ###### TIME ON SYSTEM
################################################################################### ###################################################################################
echo "VICIDIAL: Agents Time On Calls $NOW_TIME\n\n"; echo "VICIDIAL: Agents Time On Calls $NOW_TIME <a href=\"./server_stats.php\">REPORTS</a>\n\n";
echo "+------------|--------+-----------+------------+--------+---------------------+---------+\n"; echo "+------------|--------+-----------+------------+--------+---------------------+---------+\n";
echo "| STATION | USER | SESSIONID | CHANNEL | STATUS | START TIME | MINUTES |\n"; echo "| STATION | USER | SESSIONID | CHANNEL | STATUS | START TIME | MINUTES |\n";
echo "+------------|--------+-----------+------------+--------+---------------------+---------+\n"; echo "+------------|--------+-----------+------------+--------+---------------------+---------+\n";
$stmt="select extension,user,conf_exten,channel,status,last_call_time,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents where server_ip='$server_ip' order by extension;"; $stmt="select extension,user,conf_exten,channel,status,last_call_time,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents where server_ip='" . mysql_real_escape_string($server_ip) . "' order by extension;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$talking_to_print = mysql_num_rows($rslt); $talking_to_print = mysql_num_rows($rslt);
@@ -169,7 +188,7 @@ echo "+------------+--------+----------+--------------------+-------------------
# $linkX=mysql_connect("localhost", "cron", "1234"); # $linkX=mysql_connect("localhost", "cron", "1234");
#mysql_select_db("asterisk"); #mysql_select_db("asterisk");
$stmt="select channel,status,campaign_id,phone_code,phone_number,call_time,UNIX_TIMESTAMP(call_time) from vicidial_auto_calls where status NOT IN('XFER') and server_ip='$server_ip' order by auto_call_id;"; $stmt="select channel,status,campaign_id,phone_code,phone_number,call_time,UNIX_TIMESTAMP(call_time) from vicidial_auto_calls where status NOT IN('XFER') and server_ip='" . mysql_real_escape_string($server_ip) . "' order by auto_call_id;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$parked_to_print = mysql_num_rows($rslt); $parked_to_print = mysql_num_rows($rslt);
+28 -5
View File
@@ -4,6 +4,12 @@
### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 ### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
### ###
# live real-time stats for the VICIDIAL Auto-Dialer # live real-time stats for the VICIDIAL Auto-Dialer
#
# CHANGES
#
# 60620-1037 - Added variable filtering to eliminate SQL injection attack threat
# - Added required user/pass to gain access to this page
#
header ("Content-type: text/html; charset=utf-8"); header ("Content-type: text/html; charset=utf-8");
@@ -21,6 +27,23 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_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;";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$auth=$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;
}
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
$STARTtime = date("U"); $STARTtime = date("U");
$epochSIXhoursAGO = ($STARTtime - 21600); $epochSIXhoursAGO = ($STARTtime - 21600);
@@ -81,19 +104,19 @@ $groups_to_print = mysql_num_rows($rslt);
echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n";
echo"<META HTTP-EQUIV=Refresh CONTENT=\"4; URL=$PHP_SELF?server_ip=$server_ip&DB=$DB&reset_counter=$reset_counter\">\n"; echo"<META HTTP-EQUIV=Refresh CONTENT=\"4; URL=$PHP_SELF?server_ip=$server_ip&DB=$DB&reset_counter=$reset_counter\">\n";
echo "<TITLE>VICIDIAL: Time On VDAD</TITLE></HEAD><BODY BGCOLOR=WHITE>\n"; echo "<TITLE>VICIDIAL: Time On VDAD</TITLE></HEAD><BODY BGCOLOR=WHITE>\n";
echo "<PRE><FONT SIZE=3>\n\n"; echo "<PRE><FONT SIZE=3>";
################################################################################### ###################################################################################
###### TIME ON SYSTEM ###### TIME ON SYSTEM
################################################################################### ###################################################################################
echo "VICIDIAL: Agents Time On Calls $NOW_TIME\n\n"; echo "VICIDIAL: Agents Time On Calls $NOW_TIME <a href=\"./server_stats.php\">REPORTS</a>\n\n";
echo "+------------|--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n"; echo "+------------|--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
echo "| STATION | USER | SESSIONID | CHANNEL | STATUS | CALLTIME | MINUTES | CAMPAIGN | FRONT |\n"; echo "| STATION | USER | SESSIONID | CHANNEL | STATUS | CALLTIME | MINUTES | CAMPAIGN | FRONT |\n";
echo "+------------|--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n"; echo "+------------|--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
$stmt="select extension,user,conf_exten,channel,status,last_call_time,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),uniqueid,lead_id from vicidial_live_agents where status NOT IN('PAUSED') and server_ip='$server_ip' order by extension;"; $stmt="select extension,user,conf_exten,channel,status,last_call_time,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),uniqueid,lead_id from vicidial_live_agents where status NOT IN('PAUSED') and server_ip='" . mysql_real_escape_string($server_ip) . "' order by extension;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$talking_to_print = mysql_num_rows($rslt); $talking_to_print = mysql_num_rows($rslt);
@@ -150,7 +173,7 @@ $talking_to_print = mysql_num_rows($rslt);
while ($i < $ext_count) while ($i < $ext_count)
{ {
$stmt="select campaign_id from vicidial_auto_calls where uniqueid='$uniqueid[$i]' and server_ip='$server_ip';"; $stmt="select campaign_id from vicidial_auto_calls where uniqueid='$uniqueid[$i]' and server_ip='" . mysql_real_escape_string($server_ip) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$camp_to_print = mysql_num_rows($rslt); $camp_to_print = mysql_num_rows($rslt);
@@ -219,7 +242,7 @@ echo "+---------------------+--------+--------------+--------------------+------
# $linkX=mysql_connect("localhost", "cron", "1234"); # $linkX=mysql_connect("localhost", "cron", "1234");
#mysql_select_db("asterisk"); #mysql_select_db("asterisk");
$stmt="select channel,status,campaign_id,phone_code,phone_number,call_time,UNIX_TIMESTAMP(call_time) from vicidial_auto_calls where status NOT IN('XFER') and server_ip='$server_ip' order by auto_call_id desc;"; $stmt="select channel,status,campaign_id,phone_code,phone_number,call_time,UNIX_TIMESTAMP(call_time) from vicidial_auto_calls where status NOT IN('XFER') and server_ip='" . mysql_real_escape_string($server_ip) . "' order by auto_call_id desc;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$parked_to_print = mysql_num_rows($rslt); $parked_to_print = mysql_num_rows($rslt);
+28 -9
View File
@@ -11,6 +11,8 @@
# 60421-1043 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60421-1043 - check GET/POST vars lines with isset to not trigger PHP NOTICES
# 60511-1343 - Added leads and drop info at the top of the screen # 60511-1343 - Added leads and drop info at the top of the screen
# 60608-1539 - Fixed CLOSER tallies for active calls # 60608-1539 - Fixed CLOSER tallies for active calls
# 60619-1658 - Added variable filtering to eliminate SQL injection attack threat
# - Added required user/pass to gain access to this page
# #
header ("Content-type: text/html; charset=utf-8"); header ("Content-type: text/html; charset=utf-8");
@@ -37,6 +39,23 @@ if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
if (!isset($group)) {$group='';} if (!isset($group)) {$group='';}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_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;";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$auth=$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;
}
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
$NOW_DAY = date("Y-m-d"); $NOW_DAY = date("Y-m-d");
$NOW_HOUR = date("H:i:s"); $NOW_HOUR = date("H:i:s");
@@ -111,16 +130,16 @@ echo "<SELECT SIZE=1 NAME=group>\n";
$o++; $o++;
} }
echo "</SELECT>\n"; echo "</SELECT>\n";
echo "<INPUT type=submit NAME=SUBMIT VALUE=SUBMIT> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \n"; echo "<INPUT type=submit NAME=SUBMIT VALUE=SUBMIT><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2> &nbsp; &nbsp; &nbsp; &nbsp; \n";
echo "<a href=\"$PHP_SELF?group=$group&RR=40&DB=$DB\">STOP</a> | <a href=\"$PHP_SELF?group=$group&RR=4&DB=$DB\">GO</a>"; echo "<a href=\"$PHP_SELF?group=$group&RR=40&DB=$DB\">STOP</a> | <a href=\"$PHP_SELF?group=$group&RR=4&DB=$DB\">GO</a>";
echo " &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href=\"./admin.php?ADD=34&campaign_id=$group\">MODIFY</a> \n"; echo " &nbsp; &nbsp; &nbsp; &nbsp; <a href=\"./admin.php?ADD=34&campaign_id=$group\">MODIFY</a> | <a href=\"./server_stats.php\">REPORTS</a> </FONT>\n";
echo "\n\n"; echo "\n\n";
if (!$group) {echo "<BR><BR>please select a campaign from the pulldown above</FORM>\n"; exit;} if (!$group) {echo "<BR><BR>please select a campaign from the pulldown above</FORM>\n"; exit;}
else else
{ {
$stmt="select auto_dial_level,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,lead_filter_id,hopper_level from vicidial_campaigns where campaign_id='$group';"; $stmt="select auto_dial_level,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,lead_filter_id,hopper_level from vicidial_campaigns where campaign_id='" . mysql_real_escape_string($group) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$HOPlev = $row[8]; $HOPlev = $row[8];
@@ -132,12 +151,12 @@ echo "<TD ALIGN=RIGHT><font size=2><B>ORDER:</B></TD><TD ALIGN=LEFT><font size=2
echo "<TD ALIGN=RIGHT><font size=2><B>FILTER:</B></TD><TD ALIGN=LEFT><font size=2>&nbsp; $row[7] &nbsp; &nbsp; </TD>"; echo "<TD ALIGN=RIGHT><font size=2><B>FILTER:</B></TD><TD ALIGN=LEFT><font size=2>&nbsp; $row[7] &nbsp; &nbsp; </TD>";
echo "</TR>"; echo "</TR>";
$stmt="select count(*) from vicidial_hopper where campaign_id='$group';"; $stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$VDhop = $row[0]; $VDhop = $row[0];
$stmt="select dialable_leads,calls_today,drops_today,drops_today_pct from vicidial_campaign_stats where campaign_id='$group';"; $stmt="select dialable_leads,calls_today,drops_today,drops_today_pct from vicidial_campaign_stats where campaign_id='" . mysql_real_escape_string($group) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$DAleads = $row[0]; $DAleads = $row[0];
@@ -166,17 +185,17 @@ echo "</FORM>\n\n";
################################################################################### ###################################################################################
if (eregi("CLOSER",$group)) if (eregi("CLOSER",$group))
{ {
$stmt="select closer_campaigns from vicidial_campaigns where campaign_id='$group';"; $stmt="select closer_campaigns from vicidial_campaigns where campaign_id='" . mysql_real_escape_string($group) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$closer_campaigns = preg_replace("/^ | -$/","",$row[0]); $closer_campaigns = preg_replace("/^ | -$/","",$row[0]);
$closer_campaigns = preg_replace("/ /","','",$closer_campaigns); $closer_campaigns = preg_replace("/ /","','",$closer_campaigns);
$closer_campaigns = "'$closer_campaigns'"; $closer_campaigns = "'$closer_campaigns'";
$stmt="select status from vicidial_auto_calls where status NOT IN('XFER') and ( (call_type='IN' and campaign_id IN($closer_campaigns)) or (campaign_id='$group' and call_type='OUT') );"; $stmt="select status from vicidial_auto_calls where status NOT IN('XFER') and ( (call_type='IN' and campaign_id IN($closer_campaigns)) or (campaign_id='" . mysql_real_escape_string($group) . "' and call_type='OUT') );";
} }
else else
{$stmt="select status from vicidial_auto_calls where status NOT IN('XFER') and campaign_id='$group';";} {$stmt="select status from vicidial_auto_calls where status NOT IN('XFER') and campaign_id='" . mysql_real_escape_string($group) . "';";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$parked_to_print = mysql_num_rows($rslt); $parked_to_print = mysql_num_rows($rslt);
@@ -238,7 +257,7 @@ $Aecho .= "| STATION | USER | SESSIONID | STATUS | SERVER IP | CALL S
$Aecho .= "+------------|--------+-----------+--------+-----------------+-----------------+---------+------------+\n"; $Aecho .= "+------------|--------+-----------+--------+-----------------+-----------------+---------+------------+\n";
$stmt="select extension,user,conf_exten,status,server_ip,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),call_server_ip,campaign_id from vicidial_live_agents where campaign_id='$group' order by status,last_call_time;"; $stmt="select extension,user,conf_exten,status,server_ip,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),call_server_ip,campaign_id from vicidial_live_agents where campaign_id='" . mysql_real_escape_string($group) . "' order by status,last_call_time;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$talking_to_print = mysql_num_rows($rslt); $talking_to_print = mysql_num_rows($rslt);
+25 -7
View File
@@ -9,6 +9,8 @@
# 50406-0920 - Added Paused agents < 1 min (Chris Doyle) # 50406-0920 - Added Paused agents < 1 min (Chris Doyle)
# 51130-1218 - Modified layout and info to show all servers in a vicidial system # 51130-1218 - Modified layout and info to show all servers in a vicidial system
# 60504-2023 - Modified click-to-listen for SIP phones by Angelito Manansala # 60504-2023 - Modified click-to-listen for SIP phones by Angelito Manansala
# 60619-1708 - Added variable filtering to eliminate SQL injection attack threat
# - Added required user/pass to gain access to this page
# #
header ("Content-type: text/html; charset=utf-8"); header ("Content-type: text/html; charset=utf-8");
@@ -25,6 +27,22 @@ $DB=$_GET["DB"]; if (!$DB) {$DB=$_POST["DB"];}
$submit=$_GET["submit"]; if (!$submit) {$submit=$_POST["submit"];} $submit=$_GET["submit"]; if (!$submit) {$submit=$_POST["submit"];}
$SUBMIT=$_GET["SUBMIT"]; if (!$SUBMIT) {$SUBMIT=$_POST["SUBMIT"];} $SUBMIT=$_GET["SUBMIT"]; if (!$SUBMIT) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_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;";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$auth=$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;
}
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
$STARTtime = date("U"); $STARTtime = date("U");
@@ -96,15 +114,15 @@ echo "<SELECT SIZE=1 NAME=group>\n";
$o++; $o++;
} }
echo "</SELECT>\n"; echo "</SELECT>\n";
echo "<INPUT type=submit NAME=SUBMIT VALUE=SUBMIT> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \n"; echo "<INPUT type=submit NAME=SUBMIT VALUE=SUBMIT><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2> &nbsp; &nbsp; &nbsp; &nbsp; \n";
echo "<a href=\"$PHP_SELF?group=$group&RR=40&DB=$DB\">STOP</a> | <a href=\"$PHP_SELF?group=$group&RR=4&DB=$DB\">GO</a> \n"; echo "<a href=\"$PHP_SELF?group=$group&RR=40&DB=$DB\">STOP</a> | <a href=\"$PHP_SELF?group=$group&RR=4&DB=$DB\">GO</a>";
echo " &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href=\"./admin.php?ADD=34&campaign_id=$group\">MODIFY</a> \n"; echo " &nbsp; &nbsp; &nbsp; &nbsp; <a href=\"./admin.php?ADD=34&campaign_id=$group\">MODIFY</a> | <a href=\"./server_stats.php\">REPORTS</a> </FONT>\n";
echo "\n\n"; echo "\n\n";
if (!$group) {echo "<BR><BR>please select a campaign from the pulldown above</FORM>\n"; exit;} if (!$group) {echo "<BR><BR>please select a campaign from the pulldown above</FORM>\n"; exit;}
else else
{ {
$stmt="select auto_dial_level,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order from vicidial_campaigns where campaign_id='$group';"; $stmt="select auto_dial_level,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order from vicidial_campaigns where campaign_id='" . mysql_real_escape_string($group) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -118,9 +136,9 @@ echo "</FORM>\n\n";
###### OUTBOUND CALLS ###### OUTBOUND CALLS
################################################################################### ###################################################################################
if (eregi("CLOSER",$group)) if (eregi("CLOSER",$group))
{$stmt="select status from vicidial_auto_calls where status NOT IN('XFER') and (campaign_id='$group' or campaign_id LIKE \"CL_%\");";} {$stmt="select status from vicidial_auto_calls where status NOT IN('XFER') and (campaign_id='" . mysql_real_escape_string($group) . "' or campaign_id LIKE \"CL_%\");";}
else else
{$stmt="select status from vicidial_auto_calls where status NOT IN('XFER') and campaign_id='$group';";} {$stmt="select status from vicidial_auto_calls where status NOT IN('XFER') and campaign_id='" . mysql_real_escape_string($group) . "';";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$parked_to_print = mysql_num_rows($rslt); $parked_to_print = mysql_num_rows($rslt);
@@ -182,7 +200,7 @@ $Aecho .= "| STATION | USER | SESSIONID | STATUS | SERVER IP |
$Aecho .= "+------------|--------+------------------+--------+-----------------+-----------------+---------+------------+\n"; $Aecho .= "+------------|--------+------------------+--------+-----------------+-----------------+---------+------------+\n";
$stmt="select extension,user,conf_exten,status,server_ip,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),call_server_ip,campaign_id from vicidial_live_agents where campaign_id='$group' order by status,last_call_time;"; $stmt="select extension,user,conf_exten,status,server_ip,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),call_server_ip,campaign_id from vicidial_live_agents where campaign_id='" . mysql_real_escape_string($group) . "' order by status,last_call_time;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$talking_to_print = mysql_num_rows($rslt); $talking_to_print = mysql_num_rows($rslt);
+27 -5
View File
@@ -3,6 +3,11 @@
### ###
### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 ### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
### ###
# CHANGES
#
# 60620-1043 - Added variable filtering to eliminate SQL injection attack threat
# - Added required user/pass to gain access to this page
#
require("dbconnect.php"); require("dbconnect.php");
@@ -18,6 +23,23 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_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;";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$auth=$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;
}
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
$STARTtime = date("U"); $STARTtime = date("U");
@@ -38,19 +60,19 @@ echo"<META HTTP-EQUIV=Refresh CONTENT=\"15; URL=$PHP_SELF?server_ip=$server_ip&D
echo "<TITLE>VICIDIAL: Time On Call</TITLE></HEAD><BODY BGCOLOR=WHITE>\n"; echo "<TITLE>VICIDIAL: Time On Call</TITLE></HEAD><BODY BGCOLOR=WHITE>\n";
echo "<PRE>\n\n"; echo "<PRE>\n\n";
echo "VICIDIAL: Time On Call $NOW_TIME\n\n"; echo "VICIDIAL: Time On Call $NOW_TIME <a href=\"./server_stats.php\">REPORTS</a>\n\n";
echo "+------------+-----------+-----------+------------------+---------------------+---------+\n"; echo "+------------+-----------+-----------+------------------+---------------------+---------+\n";
echo "| STATION | SESSIONID | CHANNEL | NUMBER DIALED | START TIME | MINUTES |\n"; echo "| STATION | SESSIONID | CHANNEL | NUMBER DIALED | START TIME | MINUTES |\n";
echo "+------------+-----------+-----------+------------------+---------------------+---------+\n"; echo "+------------+-----------+-----------+------------------+---------------------+---------+\n";
$stmt="SELECT count(*) from live_sip_channels where server_ip='$server_ip';"; $stmt="SELECT count(*) from live_sip_channels where server_ip='" . mysql_real_escape_string($server_ip) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$parked_count = $row[0]; $parked_count = $row[0];
if ($parked_count > 0) if ($parked_count > 0)
{ {
$stmt="select extension from live_channels where server_ip='$server_ip';"; $stmt="select extension from live_channels where server_ip='" . mysql_real_escape_string($server_ip) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$ext_to_print = mysql_num_rows($rslt); $ext_to_print = mysql_num_rows($rslt);
@@ -70,7 +92,7 @@ $parked_count = $row[0];
if ($DB) {echo "SESSIONS: -$sessions-\n";} if ($DB) {echo "SESSIONS: -$sessions-\n";}
$stmt="select * from live_sip_channels where server_ip='$server_ip' order by channel;"; $stmt="select * from live_sip_channels where server_ip='" . mysql_real_escape_string($server_ip) . "' order by channel;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$parked_to_print = mysql_num_rows($rslt); $parked_to_print = mysql_num_rows($rslt);
@@ -119,7 +141,7 @@ $parked_count = $row[0];
while ($i < $live_calls_counter) while ($i < $live_calls_counter)
{ {
$stmt="select channel,extension,number_dialed,start_time,start_epoch from call_log where extension='$LIVE_stations[$i]' and server_ip='$server_ip' order by uniqueid desc LIMIT 1;"; $stmt="select channel,extension,number_dialed,start_time,start_epoch from call_log where extension='$LIVE_stations[$i]' and server_ip='" . mysql_real_escape_string($server_ip) . "' order by uniqueid desc LIMIT 1;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$parked_to_print = mysql_num_rows($rslt); $parked_to_print = mysql_num_rows($rslt);
+25 -3
View File
@@ -3,6 +3,11 @@
### ###
### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 ### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
### ###
# CHANGES
#
# 60620-1042 - Added variable filtering to eliminate SQL injection attack threat
# - Added required user/pass to gain access to this page
#
require("dbconnect.php"); require("dbconnect.php");
@@ -18,6 +23,23 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_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;";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$auth=$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;
}
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
$STARTtime = date("U"); $STARTtime = date("U");
$timeONEhoursAGO = ($STARTtime - 3600); $timeONEhoursAGO = ($STARTtime - 3600);
@@ -67,7 +89,7 @@ echo"<META HTTP-EQUIV=Refresh CONTENT=\"7; URL=$PHP_SELF?server_ip=$server_ip&DB
echo "<TITLE>VICIDIAL: Time On Park</TITLE></HEAD><BODY BGCOLOR=WHITE>\n"; echo "<TITLE>VICIDIAL: Time On Park</TITLE></HEAD><BODY BGCOLOR=WHITE>\n";
echo "<PRE><FONT SIZE=3>\n\n"; echo "<PRE><FONT SIZE=3>\n\n";
echo "VICIDIAL: Time On Park $NOW_TIME\n\n"; echo "VICIDIAL: Time On Park $NOW_TIME <a href=\"./server_stats.php\">REPORTS</a>\n\n";
echo "+------------+-----------------+---------------------+---------+\n"; echo "+------------+-----------------+---------------------+---------+\n";
echo "| CHANNEL | GROUP | START TIME | MINUTES |\n"; echo "| CHANNEL | GROUP | START TIME | MINUTES |\n";
echo "+------------+-----------------+---------------------+---------+\n"; echo "+------------+-----------------+---------------------+---------+\n";
@@ -76,7 +98,7 @@ echo "+------------+-----------------+---------------------+---------+\n";
# $linkX=mysql_connect("localhost", "cron", "1234"); # $linkX=mysql_connect("localhost", "cron", "1234");
#mysql_select_db("asterisk"); #mysql_select_db("asterisk");
$stmt="select extension,user,channel,channel_group,parked_time,UNIX_TIMESTAMP(parked_time) from park_log where status ='PARKED' and server_ip='$server_ip' order by uniqueid;"; $stmt="select extension,user,channel,channel_group,parked_time,UNIX_TIMESTAMP(parked_time) from park_log where status ='PARKED' and server_ip='" . mysql_real_escape_string($server_ip) . "' order by uniqueid;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$parked_to_print = mysql_num_rows($rslt); $parked_to_print = mysql_num_rows($rslt);
@@ -138,7 +160,7 @@ echo "| STATION | USER | CHANNEL | GROUP | START TIME
echo "+------------|--------+------------+-----------------+---------------------+---------+\n"; echo "+------------|--------+------------+-----------------+---------------------+---------+\n";
$stmt="select extension,user,channel,channel_group,grab_time,UNIX_TIMESTAMP(grab_time) from park_log where status ='TALKING' and server_ip='$server_ip' order by uniqueid;"; $stmt="select extension,user,channel,channel_group,grab_time,UNIX_TIMESTAMP(grab_time) from park_log where status ='TALKING' and server_ip='" . mysql_real_escape_string($server_ip) . "' order by uniqueid;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$talking_to_print = mysql_num_rows($rslt); $talking_to_print = mysql_num_rows($rslt);
+184 -19
View File
@@ -254,8 +254,6 @@ if (isset($_GET["ct_saturday_start"])) {$ct_saturday_start=$_GET["ct_saturday
elseif (isset($_POST["ct_saturday_start"])) {$ct_saturday_start=$_POST["ct_saturday_start"];} elseif (isset($_POST["ct_saturday_start"])) {$ct_saturday_start=$_POST["ct_saturday_start"];}
if (isset($_GET["ct_saturday_stop"])) {$ct_saturday_stop=$_GET["ct_saturday_stop"];} if (isset($_GET["ct_saturday_stop"])) {$ct_saturday_stop=$_GET["ct_saturday_stop"];}
elseif (isset($_POST["ct_saturday_stop"])) {$ct_saturday_stop=$_POST["ct_saturday_stop"];} elseif (isset($_POST["ct_saturday_stop"])) {$ct_saturday_stop=$_POST["ct_saturday_stop"];}
if (isset($_GET["ct_state_call_times"])) {$ct_state_call_times=$_GET["ct_state_call_times"];}
elseif (isset($_POST["ct_state_call_times"])) {$ct_state_call_times=$_POST["ct_state_call_times"];}
if (isset($_GET["state_call_time_state"])) {$state_call_time_state=$_GET["state_call_time_state"];} if (isset($_GET["state_call_time_state"])) {$state_call_time_state=$_GET["state_call_time_state"];}
elseif (isset($_POST["state_call_time_state"])) {$state_call_time_state=$_POST["state_call_time_state"];} elseif (isset($_POST["state_call_time_state"])) {$state_call_time_state=$_POST["state_call_time_state"];}
if (isset($_GET["state_rule"])) {$state_rule=$_GET["state_rule"];} if (isset($_GET["state_rule"])) {$state_rule=$_GET["state_rule"];}
@@ -280,6 +278,161 @@ if (isset($_GET["attempt_maximum"])) {$attempt_maximum=$_GET["attempt_maximum
if (isset($script_id)) {$script_id= strtoupper($script_id);} if (isset($script_id)) {$script_id= strtoupper($script_id);}
if (isset($lead_filter_id)) {$lead_filter_id = strtoupper($lead_filter_id);} if (isset($lead_filter_id)) {$lead_filter_id = strtoupper($lead_filter_id);}
##### BEGIN VARIABLE FILTERING FOR SECURITY #####
### DIGITS ONLY ###
$user_level = ereg_replace("[^0-9]","",$user_level);
$wrapup_seconds = ereg_replace("[^0-9]","",$wrapup_seconds);
$xferconf_a_number = ereg_replace("[^0-9]","",$xferconf_a_number);
$xferconf_b_number = ereg_replace("[^0-9]","",$xferconf_b_number);
$drop_call_seconds = ereg_replace("[^0-9]","",$drop_call_seconds);
$voicemail_ext = ereg_replace("[^0-9]","",$voicemail_ext);
$safe_harbor_exten = ereg_replace("[^0-9]","",$safe_harbor_exten);
$am_message_exten = ereg_replace("[^0-9]","",$am_message_exten);
$campaign_rec_exten = ereg_replace("[^0-9]","",$campaign_rec_exten);
$campaign_vdad_exten = ereg_replace("[^0-9]","",$campaign_vdad_exten);
$drop_exten = ereg_replace("[^0-9]","",$drop_exten);
$dial_timeout = ereg_replace("[^0-9]","",$dial_timeout);
$park_ext = ereg_replace("[^0-9]","",$park_ext);
$hopper_level = ereg_replace("[^0-9]","",$hopper_level);
$agent_choose_ingroups = ereg_replace("[^0-9]","",$agent_choose_ingroups);
$hotkeys_active = ereg_replace("[^0-9]","",$hotkeys_active);
$agentonly_callbacks = ereg_replace("[^0-9]","",$agentonly_callbacks);
$agentcall_manual = ereg_replace("[^0-9]","",$agentcall_manual);
$vicidial_recording = ereg_replace("[^0-9]","",$vicidial_recording);
$vicidial_transfers = ereg_replace("[^0-9]","",$vicidial_transfers);
$closer_default_blended = ereg_replace("[^0-9]","",$closer_default_blended);
$alter_agent_interface_options = ereg_replace("[^0-9]","",$alter_agent_interface_options);
$delete_users = ereg_replace("[^0-9]","",$delete_users);
$delete_user_groups = ereg_replace("[^0-9]","",$delete_user_groups);
$delete_scripts = ereg_replace("[^0-9]","",$delete_scripts);
$delete_remote_agents = ereg_replace("[^0-9]","",$delete_remote_agents);
$delete_lists = ereg_replace("[^0-9]","",$delete_lists);
$delete_ingroups = ereg_replace("[^0-9]","",$delete_ingroups);
$delete_filters = ereg_replace("[^0-9]","",$delete_filters);
$delete_campaigns = ereg_replace("[^0-9]","",$delete_campaigns);
$delete_call_times = ereg_replace("[^0-9]","",$delete_call_times);
$load_leads = ereg_replace("[^0-9]","",$delete_call_times);
$campaign_detail = ereg_replace("[^0-9]","",$campaign_detail);
$ast_delete_phones = ereg_replace("[^0-9]","",$ast_delete_phones);
$ast_admin_access = ereg_replace("[^0-9]","",$ast_admin_access);
$modify_leads = ereg_replace("[^0-9]","",$modify_leads);
$change_agent_campaign = ereg_replace("[^0-9]","",$change_agent_campaign);
$modify_call_times = ereg_replace("[^0-9]","",$modify_call_times);
$ct_wednesday_stop = ereg_replace("[^0-9]","",$ct_wednesday_stop);
$ct_wednesday_start = ereg_replace("[^0-9]","",$ct_wednesday_start);
$ct_tuesday_stop = ereg_replace("[^0-9]","",$ct_tuesday_stop);
$ct_tuesday_start = ereg_replace("[^0-9]","",$ct_tuesday_start);
$ct_thursday_stop = ereg_replace("[^0-9]","",$ct_thursday_stop);
$ct_thursday_start = ereg_replace("[^0-9]","",$ct_thursday_start);
$ct_sunday_stop = ereg_replace("[^0-9]","",$ct_sunday_stop);
$ct_sunday_start = ereg_replace("[^0-9]","",$ct_sunday_start);
$ct_saturday_stop = ereg_replace("[^0-9]","",$ct_saturday_stop);
$ct_saturday_start = ereg_replace("[^0-9]","",$ct_saturday_start);
$ct_monday_stop = ereg_replace("[^0-9]","",$ct_monday_stop);
$ct_monday_start = ereg_replace("[^0-9]","",$ct_monday_start);
$ct_friday_stop = ereg_replace("[^0-9]","",$ct_friday_stop);
$ct_friday_start = ereg_replace("[^0-9]","",$ct_friday_start);
$ct_default_stop = ereg_replace("[^0-9]","",$ct_default_stop);
$ct_default_start = ereg_replace("[^0-9]","",$ct_default_start);
$number_of_lines = ereg_replace("[^0-9]","",$number_of_lines);
$user_start = ereg_replace("[^0-9]","",$user_start);
$phone_number = ereg_replace("[^0-9]","",$phone_number);
$remote_agent_id = ereg_replace("[^0-9]","",$remote_agent_id);
$conf_exten = ereg_replace("[^0-9]","",$conf_exten);
$attempt_maximum = ereg_replace("[^0-9]","",$attempt_maximum);
$attempt_delay = ereg_replace("[^0-9]","",$attempt_delay);
$hotkey = ereg_replace("[^0-9]","",$hotkey);
$list_id = ereg_replace("[^0-9]","",$list_id);
### Y or N ONLY ###
$active = ereg_replace("[^NY]","",$active);
$allow_closers = ereg_replace("[^NY]","",$allow_closers);
$reset_hopper = ereg_replace("[^NY]","",$reset_hopper);
$amd_send_to_vmx = ereg_replace("[^NY]","",$amd_send_to_vmx);
$alt_number_dialing = ereg_replace("[^NY]","",$alt_number_dialing);
$scheduled_callbacks = ereg_replace("[^NY]","",$scheduled_callbacks);
$safe_harbor_message = ereg_replace("[^NY]","",$safe_harbor_message);
$selectable = ereg_replace("[^NY]","",$selectable);
$reset_list = ereg_replace("[^NY]","",$reset_list);
$fronter_display = ereg_replace("[^NY]","",$fronter_display);
$drop_message = ereg_replace("[^NY]","",$drop_message);
$use_internal_dnc = ereg_replace("[^NY]","",$use_internal_dnc);
### ALPHA-NUMERIC ONLY ###
$user = ereg_replace("[^0-9a-zA-Z]","",$user);
$pass = ereg_replace("[^0-9a-zA-Z]","",$pass);
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
$script_id = ereg_replace("[^0-9a-zA-Z]","",$script_id);
$status = ereg_replace("[^0-9a-zA-Z]","",$status);
$HKstatus = ereg_replace("[^0-9a-zA-Z]","",$HKstatus);
$submit = ereg_replace("[^0-9a-zA-Z]","",$submit);
$CoNfIrM = ereg_replace("[^0-9a-zA-Z]","",$CoNfIrM);
$campaign_cid = ereg_replace("[^0-9a-zA-Z]","",$campaign_cid);
$get_call_launch = ereg_replace("[^0-9a-zA-Z]","",$get_call_launch);
$campaign_recording = ereg_replace("[^0-9a-zA-Z]","",$campaign_recording);
$ADD = ereg_replace("[^0-9a-zA-Z]","",$ADD);
$dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$dial_prefix);
$state_call_time_state = ereg_replace("[^0-9a-zA-Z]","",$state_call_time_state);
### DIGITS and Dots
$server_ip = ereg_replace("[^\.0-9]","",$server_ip);
$auto_dial_level = ereg_replace("[^\.0-9]","",$auto_dial_level);
### DIGITS and spaces and hash and star and comma
$xferconf_a_dtmf = ereg_replace("[^ \,\*\#0-9]","",$xferconf_a_dtmf);
$xferconf_b_dtmf = ereg_replace("[^ \,\*\#0-9]","",$xferconf_b_dtmf);
### ALPHA-NUMERIC and underscore and dash
$dial_status_e = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_e);
$dial_status_d = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_d);
$dial_status_c = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_c);
$dial_status_b = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_b);
$dial_status_a = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_a);
$stage = ereg_replace("[^-\_0-9a-zA-Z]","",$stage);
$lead_filter_id = ereg_replace("[^-\_0-9a-zA-Z]","",$lead_filter_id);
$campaign_id = ereg_replace("[^-\_0-9a-zA-Z]","",$campaign_id);
$old_campaign_id = ereg_replace("[^-\_0-9a-zA-Z]","",$old_campaign_id);
$park_file_name = ereg_replace("[^-\_0-9a-zA-Z]","",$park_file_name);
$next_agent_call = ereg_replace("[^-\_0-9a-zA-Z]","",$next_agent_call);
$local_call_time = ereg_replace("[^-\_0-9a-zA-Z]","",$local_call_time);
$call_time_id = ereg_replace("[^-\_0-9a-zA-Z]","",$call_time_id);
$phone_pass = ereg_replace("[^-\_0-9a-zA-Z]","",$phone_pass);
$phone_login = ereg_replace("[^-\_0-9a-zA-Z]","",$phone_login);
$group_id = ereg_replace("[^-\_0-9a-zA-Z]","",$group_id);
$user_group = ereg_replace("[^-\_0-9a-zA-Z]","",$user_group);
$OLDuser_group = ereg_replace("[^-\_0-9a-zA-Z]","",$OLDuser_group);
$state_rule = ereg_replace("[^-\_0-9a-zA-Z]","",$state_rule);
### ALPHA-NUMERIC and spaces
$lead_order = ereg_replace("[^ 0-9a-zA-Z]","",$lead_order);
### ALPHA-NUMERIC and hash
$group_color = ereg_replace("[^\#0-9a-zA-Z]","",$group_color);
### ALPHA-NUMERIC and spaces dots, commas, dashes, underscores
$group_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_name);
$campaign_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_name);
$full_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$full_name);
$wrapup_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$wrapup_message);
$status_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status_name);
$script_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_name);
$script_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_comments);
$list_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_name);
$lead_filter_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_name);
$lead_filter_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_comments);
$campaign_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_rec_filename);
$call_time_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_name);
$call_time_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_comments);
### VARIABLES TO BE mysql_real_escape_string ###
# $web_form_address
# $script_text
# $lead_filter_sql
##### END VARIABLE FILTERING FOR SECURITY #####
# AST GUI database administration # AST GUI database administration
# admin.php # admin.php
# #
@@ -336,12 +489,13 @@ if (isset($_GET["attempt_maximum"])) {$attempt_maximum=$_GET["attempt_maximum
# 60608-1401 - Added allowable inbound_groups checkboxes to CLOSER campaign detail screen # 60608-1401 - Added allowable inbound_groups checkboxes to CLOSER campaign detail screen
# 60609-1051 - Added add-to-dnc in LISTS section # 60609-1051 - Added add-to-dnc in LISTS section
# 60613-1415 - Added lead recycling options to campaign detail screen # 60613-1415 - Added lead recycling options to campaign detail screen
# 60619-1523 - Added variable filtering to eliminate SQL injection attack threat
# #
# 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 # 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
$version = '1.1.11-11'; $version = '1.1.11-12';
$build = '60613-1415'; $build = '60619-1523';
$STARTtime = date("U"); $STARTtime = date("U");
@@ -568,7 +722,7 @@ if ( ($ADD>9) && ($ADD < 99998) )
} }
} }
if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or ($ADD==31) or ($ADD==41) or ($ADD=="4A") or ($ADD=="4B") ) if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or ($ADD==21) or ($ADD==31) or ($ADD==41) or ($ADD=="4A") or ($ADD=="4B") )
{ {
##### get server listing for dynamic pulldown ##### get server listing for dynamic pulldown
$stmt="SELECT server_ip,server_description from servers order by server_ip"; $stmt="SELECT server_ip,server_description from servers order by server_ip";
@@ -1047,6 +1201,10 @@ echo "<TABLE WIDTH=98% BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR><TD ALIGN
<BR> <BR>
<B>Use Internal DNC List -</B> This defines whether this campaign is to filter leads against the Internal DNC list. If it is set to Y, the hopper will look for each phone number in the DNC list before placing it in the hopper. If it is in the DNC list then it will change that lead status to DNCL so it cannot be dialed. Default is N. <B>Use Internal DNC List -</B> This defines whether this campaign is to filter leads against the Internal DNC list. If it is set to Y, the hopper will look for each phone number in the DNC list before placing it in the hopper. If it is in the DNC list then it will change that lead status to DNCL so it cannot be dialed. Default is N.
<BR>
<A NAME="vicidial_campaigns-closer_campaigns">
<BR>
<B>Allowed Inbound Groups -</B> For CLOSER campaigns only. Here is where you select the inbound groups you want agents in this CLOSER campaign to be able to take calls from. It is important for BLENDED inbound/outbound campaigns only to select the inbound groups that are used for agents in this campaign. The calls coming into the inbound groups selected here will be counted as active calls for a blended campaign even if all agents in the campaign are not logged in to receive calls from all of those selected inbound groups.
@@ -2053,7 +2211,7 @@ if ($ADD==21)
{ {
echo "<br><B>CAMPAIGN ADDED: $campaign_id</B>\n"; echo "<br><B>CAMPAIGN ADDED: $campaign_id</B>\n";
$stmt="INSERT INTO vicidial_campaigns (campaign_id,campaign_name,active,dial_status_a,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,campaign_script,get_call_launch) values('$campaign_id','$campaign_name','$active','NEW','DOWN','$park_ext','$park_file_name','$web_form_address','$allow_closers','$hopper_level','$auto_dial_level','$next_agent_call','$local_call_time','$voicemail_ext','$script_id','$get_call_launch');"; $stmt="INSERT INTO vicidial_campaigns (campaign_id,campaign_name,active,dial_status_a,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,campaign_script,get_call_launch) values('$campaign_id','$campaign_name','$active','NEW','DOWN','$park_ext','$park_file_name','" . mysql_real_escape_string($web_form_address) . "','$allow_closers','$hopper_level','$auto_dial_level','$next_agent_call','$local_call_time','$voicemail_ext','$script_id','$get_call_launch');";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$stmt="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; $stmt="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');";
@@ -2271,7 +2429,7 @@ if ($ADD==2111)
} }
else else
{ {
$stmt="INSERT INTO vicidial_inbound_groups (group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch) values('$group_id','$group_name','$group_color','$active','$web_form_address','$voicemail_ext','$next_agent_call','$fronter_display','$script_id','$get_call_launch');"; $stmt="INSERT INTO vicidial_inbound_groups (group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch) values('$group_id','$group_name','$group_color','$active','" . mysql_real_escape_string($web_form_address) . "','$voicemail_ext','$next_agent_call','$fronter_display','$script_id','$get_call_launch');";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
echo "<br><B>GROUP ADDED: $group_id</B>\n"; echo "<br><B>GROUP ADDED: $group_id</B>\n";
@@ -2280,7 +2438,7 @@ if ($ADD==2111)
if ($WeBRooTWritablE > 0) if ($WeBRooTWritablE > 0)
{ {
$fp = fopen ("./admin_changes_log.txt", "a"); $fp = fopen ("./admin_changes_log.txt", "a");
fwrite ($fp, "$date|ADD A NEW GROUP |$PHP_AUTH_USER|$ip|'$group_id','$group_name','$group_color','$active','$web_form_address','$voicemail_ext','$next_agent_call','$fronter_display','$script_id','$get_call_launch'|\n"); fwrite ($fp, "$date|ADD A NEW GROUP |$PHP_AUTH_USER|$ip|$stmt|\n");
fclose($fp); fclose($fp);
} }
} }
@@ -2386,7 +2544,7 @@ if ($ADD==2111111)
} }
else else
{ {
$stmt="INSERT INTO vicidial_scripts values('$script_id','$script_name','$script_comments','$script_text','$active');"; $stmt="INSERT INTO vicidial_scripts values('$script_id','$script_name','$script_comments','" . mysql_real_escape_string($script_text) . "','$active');";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
echo "<br><B>SCRIPT ADDED: $script_id</B>\n"; echo "<br><B>SCRIPT ADDED: $script_id</B>\n";
@@ -2395,7 +2553,7 @@ if ($ADD==2111111)
if ($WeBRooTWritablE > 0) if ($WeBRooTWritablE > 0)
{ {
$fp = fopen ("./admin_changes_log.txt", "a"); $fp = fopen ("./admin_changes_log.txt", "a");
fwrite ($fp, "$date|ADD A NEW SCRIPT ENTRY |$PHP_AUTH_USER|$ip|'$script_id','$script_name','$script_comments','$script_text','$active'|\n"); fwrite ($fp, "$date|ADD A NEW SCRIPT ENTRY |$PHP_AUTH_USER|$ip|$stmt|\n");
fclose($fp); fclose($fp);
} }
} }
@@ -2425,7 +2583,7 @@ if ($ADD==21111111)
} }
else else
{ {
$stmt="INSERT INTO vicidial_lead_filters SET lead_filter_id='$lead_filter_id',lead_filter_name='$lead_filter_name',lead_filter_comments='$lead_filter_comments',lead_filter_sql='$lead_filter_sql';"; $stmt="INSERT INTO vicidial_lead_filters SET lead_filter_id='$lead_filter_id',lead_filter_name='$lead_filter_name',lead_filter_comments='$lead_filter_comments',lead_filter_sql='" . mysql_real_escape_string($lead_filter_sql) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
echo "<br><B>FILTER ADDED: $lead_filter_id</B>\n"; echo "<br><B>FILTER ADDED: $lead_filter_id</B>\n";
@@ -2434,7 +2592,7 @@ if ($ADD==21111111)
if ($WeBRooTWritablE > 0) if ($WeBRooTWritablE > 0)
{ {
$fp = fopen ("./admin_changes_log.txt", "a"); $fp = fopen ("./admin_changes_log.txt", "a");
fwrite ($fp, "$date|ADD A NEW FILTER ENTRY |$PHP_AUTH_USER|$ip|lead_filter_id='$lead_filter_id',lead_filter_name='$lead_filter_name',lead_filter_comments='$lead_filter_comments',lead_filter_sql='$lead_filter_sql'|\n"); fwrite ($fp, "$date|ADD A NEW FILTER ENTRY |$PHP_AUTH_USER|$ip|$stmt|\n");
fclose($fp); fclose($fp);
} }
} }
@@ -2651,7 +2809,7 @@ if ($ADD==41)
{ {
echo "<br><B>CAMPAIGN MODIFIED: $campaign_id</B>\n"; echo "<br><B>CAMPAIGN MODIFIED: $campaign_id</B>\n";
$stmtA="UPDATE vicidial_campaigns set campaign_name='$campaign_name',active='$active',dial_status_a='$dial_status_a',dial_status_b='$dial_status_b',dial_status_c='$dial_status_c',dial_status_d='$dial_status_d',dial_status_e='$dial_status_e',lead_order='$lead_order',allow_closers='$allow_closers',hopper_level='$hopper_level', auto_dial_level='$auto_dial_level', next_agent_call='$next_agent_call', local_call_time='$local_call_time', voicemail_ext='$voicemail_ext', dial_timeout='$dial_timeout', dial_prefix='$dial_prefix', campaign_cid='$campaign_cid', campaign_vdad_exten='$campaign_vdad_exten', web_form_address='$web_form_address', park_ext='$park_ext', park_file_name='$park_file_name', campaign_rec_exten='$campaign_rec_exten', campaign_recording='$campaign_recording', campaign_rec_filename='$campaign_rec_filename', campaign_script='$script_id', get_call_launch='$get_call_launch', am_message_exten='$am_message_exten', amd_send_to_vmx='$amd_send_to_vmx', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number', xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',lead_filter_id='$lead_filter_id',alt_number_dialing='$alt_number_dialing',scheduled_callbacks='$scheduled_callbacks',safe_harbor_message='$safe_harbor_message',drop_call_seconds='$drop_call_seconds',safe_harbor_exten='$safe_harbor_exten',wrapup_seconds='$wrapup_seconds',wrapup_message='$wrapup_message',closer_campaigns='$groups_value',use_internal_dnc='$use_internal_dnc' where campaign_id='$campaign_id';"; $stmtA="UPDATE vicidial_campaigns set campaign_name='$campaign_name',active='$active',dial_status_a='$dial_status_a',dial_status_b='$dial_status_b',dial_status_c='$dial_status_c',dial_status_d='$dial_status_d',dial_status_e='$dial_status_e',lead_order='$lead_order',allow_closers='$allow_closers',hopper_level='$hopper_level', auto_dial_level='$auto_dial_level', next_agent_call='$next_agent_call', local_call_time='$local_call_time', voicemail_ext='$voicemail_ext', dial_timeout='$dial_timeout', dial_prefix='$dial_prefix', campaign_cid='$campaign_cid', campaign_vdad_exten='$campaign_vdad_exten', web_form_address='" . mysql_real_escape_string($web_form_address) . "', park_ext='$park_ext', park_file_name='$park_file_name', campaign_rec_exten='$campaign_rec_exten', campaign_recording='$campaign_recording', campaign_rec_filename='$campaign_rec_filename', campaign_script='$script_id', get_call_launch='$get_call_launch', am_message_exten='$am_message_exten', amd_send_to_vmx='$amd_send_to_vmx', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number', xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',lead_filter_id='$lead_filter_id',alt_number_dialing='$alt_number_dialing',scheduled_callbacks='$scheduled_callbacks',safe_harbor_message='$safe_harbor_message',drop_call_seconds='$drop_call_seconds',safe_harbor_exten='$safe_harbor_exten',wrapup_seconds='$wrapup_seconds',wrapup_message='$wrapup_message',closer_campaigns='$groups_value',use_internal_dnc='$use_internal_dnc' where campaign_id='$campaign_id';";
$rslt=mysql_query($stmtA, $link); $rslt=mysql_query($stmtA, $link);
if ($reset_hopper == 'Y') if ($reset_hopper == 'Y')
@@ -2901,14 +3059,14 @@ if ($ADD==4111)
{ {
echo "<br><B>GROUP MODIFIED: $group_id</B>\n"; echo "<br><B>GROUP MODIFIED: $group_id</B>\n";
$stmt="UPDATE vicidial_inbound_groups set group_name='$group_name', group_color='$group_color', active='$active', web_form_address='$web_form_address', voicemail_ext='$voicemail_ext', next_agent_call='$next_agent_call', fronter_display='$fronter_display', ingroup_script='$script_id', get_call_launch='$get_call_launch', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number', xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',drop_message='$drop_message',drop_call_seconds='$drop_call_seconds',drop_exten='$drop_exten' where group_id='$group_id';"; $stmt="UPDATE vicidial_inbound_groups set group_name='$group_name', group_color='$group_color', active='$active', web_form_address='" . mysql_real_escape_string($web_form_address) . "', voicemail_ext='$voicemail_ext', next_agent_call='$next_agent_call', fronter_display='$fronter_display', ingroup_script='$script_id', get_call_launch='$get_call_launch', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number', xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',drop_message='$drop_message',drop_call_seconds='$drop_call_seconds',drop_exten='$drop_exten' where group_id='$group_id';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
### LOG CHANGES TO LOG FILE ### ### LOG CHANGES TO LOG FILE ###
if ($WeBRooTWritablE > 0) if ($WeBRooTWritablE > 0)
{ {
$fp = fopen ("./admin_changes_log.txt", "a"); $fp = fopen ("./admin_changes_log.txt", "a");
fwrite ($fp, "$date|MODIFY GROUP INFO |$PHP_AUTH_USER|$ip|group_name='$group_name',group_color='$group_color',active='$active', web_form_address='$web_form_address', voicemail_ext='$voicemail_ext', next_agent_call='$next_agent_call', fronter_display='$fronter_display', ingroup_script='$script_id', get_call_launch='$get_call_launch', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number', xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',drop_message='$drop_message',drop_call_seconds='$drop_call_seconds',drop_exten='$drop_exten' where group_id='$group_id'|\n"); fwrite ($fp, "$date|MODIFY GROUP INFO |$PHP_AUTH_USER|$ip|$stmt|\n");
fclose($fp); fclose($fp);
} }
} }
@@ -2999,7 +3157,7 @@ if ($ADD==4111111)
} }
else else
{ {
$stmt="UPDATE vicidial_scripts set script_name='$script_name', script_comments='$script_comments', script_text='$script_text', active='$active' where script_id='$script_id';"; $stmt="UPDATE vicidial_scripts set script_name='$script_name', script_comments='$script_comments', script_text='" . mysql_real_escape_string($script_text) . "', active='$active' where script_id='$script_id';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
echo "<br><B>SCRIPT MODIFIED</B>\n"; echo "<br><B>SCRIPT MODIFIED</B>\n";
@@ -3008,7 +3166,7 @@ if ($ADD==4111111)
if ($WeBRooTWritablE > 0) if ($WeBRooTWritablE > 0)
{ {
$fp = fopen ("./admin_changes_log.txt", "a"); $fp = fopen ("./admin_changes_log.txt", "a");
fwrite ($fp, "$date|MODIFY SCRIPT ENTRY |$PHP_AUTH_USER|$ip|UPDATE vicidial_scripts set script_name='$script_name', script_comments='$script_comments', script_text='$script_text', active='$active' where script_id='$script_id'|\n"); fwrite ($fp, "$date|MODIFY SCRIPT ENTRY |$PHP_AUTH_USER|$ip|$stmt|\n");
fclose($fp); fclose($fp);
} }
} }
@@ -3032,7 +3190,7 @@ if ($ADD==41111111)
} }
else else
{ {
$stmt="UPDATE vicidial_lead_filters set lead_filter_name='$lead_filter_name', lead_filter_comments='$lead_filter_comments', lead_filter_sql='$lead_filter_sql' where lead_filter_id='$lead_filter_id';"; $stmt="UPDATE vicidial_lead_filters set lead_filter_name='$lead_filter_name', lead_filter_comments='$lead_filter_comments', lead_filter_sql='" . mysql_real_escape_string($lead_filter_sql) . "' where lead_filter_id='$lead_filter_id';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
echo "<br><B>FILTER MODIFIED</B>\n"; echo "<br><B>FILTER MODIFIED</B>\n";
@@ -3041,7 +3199,7 @@ if ($ADD==41111111)
if ($WeBRooTWritablE > 0) if ($WeBRooTWritablE > 0)
{ {
$fp = fopen ("./admin_changes_log.txt", "a"); $fp = fopen ("./admin_changes_log.txt", "a");
fwrite ($fp, "$date|MODIFY FILTER ENTRY |$PHP_AUTH_USER|$ip|lead_filter_name='$lead_filter_name', lead_filter_comments='$lead_filter_comments', lead_filter_sql='$lead_filter_sql' where lead_filter_id='$lead_filter_id'|\n"); fwrite ($fp, "$date|MODIFY FILTER ENTRY |$PHP_AUTH_USER|$ip|$stmt|\n");
fclose($fp); fclose($fp);
} }
} }
@@ -4687,6 +4845,7 @@ echo "<tr><td>STATUS</td><td>STATUS NAME</td><td>CALLED</td><td>NOT CALLED</td><
$leads_in_list_N = 0; $leads_in_list_N = 0;
$leads_in_list_Y = 0; $leads_in_list_Y = 0;
$stmt="SELECT status,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by status,called_since_last_reset order by status,called_since_last_reset"; $stmt="SELECT status,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by status,called_since_last_reset order by status,called_since_last_reset";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$statuses_to_print = mysql_num_rows($rslt); $statuses_to_print = mysql_num_rows($rslt);
@@ -4720,6 +4879,8 @@ echo "<tr><td>STATUS</td><td>STATUS NAME</td><td>CALLED</td><td>NOT CALLED</td><
} }
$o=0; $o=0;
if ($lead_list['count'] > 0)
{
while (list($dispo,) = each($lead_list[$since_reset])) while (list($dispo,) = each($lead_list[$since_reset]))
{ {
@@ -4742,6 +4903,7 @@ echo "<tr><td>STATUS</td><td>STATUS NAME</td><td>CALLED</td><td>NOT CALLED</td><
echo "<tr $bgcolor><td><font size=1>$CLB$dispo$CLE</td><td><font size=1>$statuses_list[$dispo]</td><td><font size=1>".$lead_list['Y'][$dispo]."</td><td><font size=1>".$lead_list['N'][$dispo]." </td></tr>\n"; echo "<tr $bgcolor><td><font size=1>$CLB$dispo$CLE</td><td><font size=1>$statuses_list[$dispo]</td><td><font size=1>".$lead_list['Y'][$dispo]."</td><td><font size=1>".$lead_list['N'][$dispo]." </td></tr>\n";
$o++; $o++;
} }
}
echo "<tr><td colspan=2><font size=1>SUBTOTALS</td><td><font size=1>$lead_list[Y_count]</td><td><font size=1>$lead_list[N_count]</td></tr>\n"; echo "<tr><td colspan=2><font size=1>SUBTOTALS</td><td><font size=1>$lead_list[Y_count]</td><td><font size=1>$lead_list[N_count]</td></tr>\n";
echo "<tr bgcolor=\"#9BB9FB\"><td><font size=1>TOTAL</td><td colspan=3 align=center><font size=1>$lead_list[count]</td></tr>\n"; echo "<tr bgcolor=\"#9BB9FB\"><td><font size=1>TOTAL</td><td colspan=3 align=center><font size=1>$lead_list[count]</td></tr>\n";
@@ -4792,6 +4954,8 @@ echo "<tr><td>GMT OFFSET NOW (local time)</td><td>CALLED</td><td>NOT CALLED</td>
$o++; $o++;
} }
if ($lead_list['count'] > 0)
{
while (list($tzone,) = each($lead_list[$since_reset])) while (list($tzone,) = each($lead_list[$since_reset]))
{ {
$LOCALzone=3600 * $tzone; $LOCALzone=3600 * $tzone;
@@ -4806,6 +4970,7 @@ echo "<tr><td>GMT OFFSET NOW (local time)</td><td>CALLED</td><td>NOT CALLED</td>
echo "<tr $bgcolor><td><font size=1>".$DISPtzone." &nbsp; &nbsp; ($LOCALdate)</td><td><font size=1>".$lead_list['Y'][$tzone]."</td><td><font size=1>".$lead_list['N'][$tzone]."</td></tr>\n"; echo "<tr $bgcolor><td><font size=1>".$DISPtzone." &nbsp; &nbsp; ($LOCALdate)</td><td><font size=1>".$lead_list['Y'][$tzone]."</td><td><font size=1>".$lead_list['N'][$tzone]."</td></tr>\n";
} }
}
echo "<tr><td><font size=1>SUBTOTALS</td><td><font size=1>$lead_list[Y_count]</td><td><font size=1>$lead_list[N_count]</td></tr>\n"; echo "<tr><td><font size=1>SUBTOTALS</td><td><font size=1>$lead_list[Y_count]</td><td><font size=1>$lead_list[N_count]</td></tr>\n";
echo "<tr bgcolor=\"#9BB9FB\"><td><font size=1>TOTAL</td><td colspan=2 align=center><font size=1>$lead_list[count]</td></tr>\n"; echo "<tr bgcolor=\"#9BB9FB\"><td><font size=1>TOTAL</td><td colspan=2 align=center><font size=1>$lead_list[count]</td></tr>\n";
+18 -14
View File
@@ -87,6 +87,11 @@ if (isset($_GET["CBuser"])) {$CBuser=$_GET["CBuser"];}
elseif (isset($_POST["CBuser"])) {$CBuser=$_POST["CBuser"];} elseif (isset($_POST["CBuser"])) {$CBuser=$_POST["CBuser"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
### AST GUI database administration modify lead in vicidial_list ### AST GUI database administration modify lead in vicidial_list
### admin_modify_lead.php ### admin_modify_lead.php
@@ -97,6 +102,7 @@ if (isset($_GET["CBuser"])) {$CBuser=$_GET["CBuser"];}
# 60419-1705 - Added ability to change lead callback record from USERONLY to ANYONE or USERONLY-user # 60419-1705 - Added ability to change lead callback record from USERONLY to ANYONE or USERONLY-user
# 60421-1459 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60421-1459 - check GET/POST vars lines with isset to not trigger PHP NOTICES
# 60609-1112 - Added DNC list addition if status changed to DNC # 60609-1112 - Added DNC list addition if status changed to DNC
# 60619-1539 - Added variable filtering to eliminate SQL injection attack threat
# #
$STARTtime = date("U"); $STARTtime = date("U");
@@ -129,8 +135,6 @@ $browser = getenv("HTTP_USER_AGENT");
if($auth>0) if($auth>0)
{ {
$office_no=strtoupper($PHP_AUTH_USER);
$password=strtoupper($PHP_AUTH_PW);
$stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -170,12 +174,12 @@ if ($end_call > 0)
$call_length = ($STARTtime - $call_began); $call_length = ($STARTtime - $call_began);
### insert a NEW record to the vicidial_closer_log table ### insert a NEW record to the vicidial_closer_log table
$stmt="INSERT INTO vicidial_closer_log (lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed) values('$lead_id','$list_id','$campaign_id','$parked_time','$call_began','$STARTtime','$call_length','$status','$phone_code','$phone_number','$PHP_AUTH_USER','$comments','Y')"; $stmt="INSERT INTO vicidial_closer_log (lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed) values('" . mysql_real_escape_string($lead_id) . "','" . mysql_real_escape_string($list_id) . "','" . mysql_real_escape_string($campaign_id) . "','" . mysql_real_escape_string($parked_time) . "','" . mysql_real_escape_string($call_began) . "','$STARTtime','" . mysql_real_escape_string($call_length) . "','" . mysql_real_escape_string($status) . "','" . mysql_real_escape_string($phone_code) . "','" . mysql_real_escape_string($phone_number) . "','$PHP_AUTH_USER','" . mysql_real_escape_string($comments) . "','Y')";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
### update the lead record in the vicidial_list table ### update the lead record in the vicidial_list table
$stmt="UPDATE vicidial_list set status='$status',first_name='$first_name',last_name='$last_name',address1='$address1',address2='$address2',address3='$address3',city='$city',state='$state',province='$province',postal_code='$postal_code',country_code='$country_code',alt_phone='$alt_phone',email='$email',security_phrase='$security',comments='$comments' where lead_id='$lead_id'"; $stmt="UPDATE vicidial_list set status='" . mysql_real_escape_string($status) . "',first_name='" . mysql_real_escape_string($first_name) . "',last_name='" . mysql_real_escape_string($last_name) . "',address1='" . mysql_real_escape_string($address1) . "',address2='" . mysql_real_escape_string($address2) . "',address3='" . mysql_real_escape_string($address3) . "',city='" . mysql_real_escape_string($city) . "',state='" . mysql_real_escape_string($state) . "',province='" . mysql_real_escape_string($province) . "',postal_code='" . mysql_real_escape_string($postal_code) . "',country_code='" . mysql_real_escape_string($country_code) . "',alt_phone='" . mysql_real_escape_string($alt_phone) . "',email='" . mysql_real_escape_string($email) . "',security_phrase='" . mysql_real_escape_string($security) . "',comments='" . mysql_real_escape_string($comments) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "'";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
@@ -185,7 +189,7 @@ $call_length = ($STARTtime - $call_began);
if ( ($dispo != $status) and ($dispo == 'CBHOLD') ) if ( ($dispo != $status) and ($dispo == 'CBHOLD') )
{ {
### inactivate vicidial_callbacks record for this lead ### inactivate vicidial_callbacks record for this lead
$stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status='ACTIVE';"; $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='" . mysql_real_escape_string($lead_id) . "' and status='ACTIVE';";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
@@ -194,7 +198,7 @@ $call_length = ($STARTtime - $call_began);
if ( ($dispo != $status) and ($dispo == 'CALLBK') ) if ( ($dispo != $status) and ($dispo == 'CALLBK') )
{ {
### inactivate vicidial_callbacks record for this lead ### inactivate vicidial_callbacks record for this lead
$stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status IN('ACTIVE','LIVE');"; $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='" . mysql_real_escape_string($lead_id) . "' and status IN('ACTIVE','LIVE');";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
@@ -204,7 +208,7 @@ $call_length = ($STARTtime - $call_began);
if ( ($dispo != $status) and ($status == 'DNC') ) if ( ($dispo != $status) and ($status == 'DNC') )
{ {
### add lead to the internal DNC list ### add lead to the internal DNC list
$stmt="INSERT INTO vicidial_dnc (phone_number) values('$phone_number');"; $stmt="INSERT INTO vicidial_dnc (phone_number) values('" . mysql_real_escape_string($phone_number) . "');";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
@@ -218,7 +222,7 @@ else
if ($CBchangeUSERtoANY == 'YES') if ($CBchangeUSERtoANY == 'YES')
{ {
### inactivate vicidial_callbacks record for this lead ### inactivate vicidial_callbacks record for this lead
$stmt="UPDATE vicidial_callbacks set recipient='ANYONE' where callback_id='$callback_id';"; $stmt="UPDATE vicidial_callbacks set recipient='ANYONE' where callback_id='" . mysql_real_escape_string($callback_id) . "';";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
@@ -227,7 +231,7 @@ else
if ($CBchangeUSERtoUSER == 'YES') if ($CBchangeUSERtoUSER == 'YES')
{ {
### inactivate vicidial_callbacks record for this lead ### inactivate vicidial_callbacks record for this lead
$stmt="UPDATE vicidial_callbacks set user='$CBuser' where callback_id='$callback_id';"; $stmt="UPDATE vicidial_callbacks set user='" . mysql_real_escape_string($CBuser) . "' where callback_id='" . mysql_real_escape_string($callback_id) . "';";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
@@ -236,7 +240,7 @@ else
if ($CBchangeANYtoUSER == 'YES') if ($CBchangeANYtoUSER == 'YES')
{ {
### inactivate vicidial_callbacks record for this lead ### inactivate vicidial_callbacks record for this lead
$stmt="UPDATE vicidial_callbacks set user='$CBuser',recipient='USERONLY' where callback_id='$callback_id';"; $stmt="UPDATE vicidial_callbacks set user='" . mysql_real_escape_string($CBuser) . "',recipient='USERONLY' where callback_id='" . mysql_real_escape_string($callback_id) . "';";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
@@ -245,7 +249,7 @@ else
$stmt="SELECT count(*) from vicidial_list where lead_id='$lead_id'"; $stmt="SELECT count(*) from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -254,7 +258,7 @@ else
if ($lead_count > 0) if ($lead_count > 0)
{ {
$stmt="SELECT * from vicidial_list where lead_id='$lead_id'"; $stmt="SELECT * from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -347,7 +351,7 @@ else
if ( ($dispo == 'CALLBK') or ($dispo == 'CBHOLD') ) if ( ($dispo == 'CALLBK') or ($dispo == 'CBHOLD') )
{ {
### find any vicidial_callback records for this lead ### find any vicidial_callback records for this lead
$stmt="select * from vicidial_callbacks where lead_id='$lead_id' and status IN('ACTIVE','LIVE') order by callback_id desc LIMIT 1;"; $stmt="select * from vicidial_callbacks where lead_id='" . mysql_real_escape_string($lead_id) . "' and status IN('ACTIVE','LIVE') order by callback_id desc LIMIT 1;";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$CB_to_print = mysql_num_rows($rslt); $CB_to_print = mysql_num_rows($rslt);
@@ -411,7 +415,7 @@ echo "<B>CALLS TO THIS LEAD:</B>\n";
echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n"; echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n";
echo "<tr><td><font size=2>DATE/TIME </td><td align=left><font size=2>LENGTH</td><td align=left><font size=2> STATUS</td><td align=left><font size=2> TSR</td><td align=right><font size=2> CAMPAIGN</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td></tr>\n"; echo "<tr><td><font size=2>DATE/TIME </td><td align=left><font size=2>LENGTH</td><td align=left><font size=2> STATUS</td><td align=left><font size=2> TSR</td><td align=right><font size=2> CAMPAIGN</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td></tr>\n";
$stmt="select * from vicidial_log where lead_id='$lead_id' order by uniqueid desc limit 50;"; $stmt="select * from vicidial_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by uniqueid desc limit 50;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$logs_to_print = mysql_num_rows($rslt); $logs_to_print = mysql_num_rows($rslt);
+61 -28
View File
@@ -3,6 +3,16 @@
### ###
### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 ### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
### ###
### AST GUI database administration search for lead info
### admin_modify_lead.php
#
# this is the administration lead information modifier screen, the administrator just needs to enter the leadID and then they can view and modify the information in the record for that lead
#
# changes:
# 60620-1055 - Added variable filtering to eliminate SQL injection attack threat
# - Added required user/pass to gain access to this page
# - Changed results to multi-record
#
require("dbconnect.php"); require("dbconnect.php");
@@ -19,12 +29,11 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
if (isset($_GET["DB"])) {$DB=$_GET["DB"];}
elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];}
### AST GUI database administration search for lead info $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
### admin_modify_lead.php $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
# this is the administration lead information modifier screen, the administrator just needs to enter the leadID and then they can view and modify the information in the record for that lead
$STARTtime = date("U"); $STARTtime = date("U");
$TODAY = date("Y-m-d"); $TODAY = date("Y-m-d");
@@ -97,6 +106,7 @@ if ( (!$vendor_id) and (!$phone) and (!$lead_id) )
echo date("l F j, Y G:i:s A"); echo date("l F j, Y G:i:s A");
echo "\n<br><br><center>\n"; echo "\n<br><br><center>\n";
echo "<form method=post name=search action=\"$PHP_SELF\">\n"; echo "<form method=post name=search action=\"$PHP_SELF\">\n";
echo "<input type=hidden name=DB value=\"$DB\">\n";
echo "<b>Please enter a:<br> Vendor ID(vendor lead code): <input type=text name=vendor_id size=10 maxlength=10> or \n"; echo "<b>Please enter a:<br> Vendor ID(vendor lead code): <input type=text name=vendor_id size=10 maxlength=10> or \n";
echo "<br><b>a Home Phone Number: <input type=text name=phone size=10 maxlength=10> or\n"; echo "<br><b>a Home Phone Number: <input type=text name=phone size=10 maxlength=10> or\n";
echo "<br><b>a lead ID: <input type=text name=lead_id size=10 maxlength=10> <br><br>\n"; echo "<br><b>a lead ID: <input type=text name=lead_id size=10 maxlength=10> <br><br>\n";
@@ -111,19 +121,19 @@ else
if ($vendor_id) if ($vendor_id)
{ {
$stmt="SELECT * from vicidial_list where vendor_lead_code='$vendor_id'"; $stmt="SELECT * from vicidial_list where vendor_lead_code='" . mysql_real_escape_string($vendor_id) . "' order by modify_date desc limit 1000";
} }
else else
{ {
if ($phone) if ($phone)
{ {
$stmt="SELECT * from vicidial_list where phone_number='$phone'"; $stmt="SELECT * from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "' order by modify_date desc limit 1000";
} }
else else
{ {
if ($lead_id) if ($lead_id)
{ {
$stmt="SELECT * from vicidial_list where lead_id='$lead_id'"; $stmt="SELECT * from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "' order by modify_date desc limit 1000";
} }
else else
{ {
@@ -132,13 +142,14 @@ else
} }
} }
} }
if (eregi('10.10.10.2',$ip)) if ($DB)
{ {
echo "\n\n$stmt\n\n"; echo "\n\n$stmt\n\n";
} }
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt); $results_to_print = mysql_num_rows($rslt);
if ( (strlen($row[0]) < 3) && (strlen($row[1]) < 3) ) if ($results_to_print < 1)
{ {
echo date("l F j, Y G:i:s A"); echo date("l F j, Y G:i:s A");
echo "\n<br><br><center>\n"; echo "\n<br><br><center>\n";
@@ -150,23 +161,45 @@ else
} }
else else
{ {
echo "\n<PRE>\n\n"; echo "<b>RESULTS: $results_to_print</b><BR><BR>\n";
echo "lead ID: $row[0]\n"; echo "<TABLE BGCOLOR=WHITE CELLPADDING=1 CELLSPACING=0>\n";
echo "status: $row[3]\n"; echo "<TR BGCOLOR=BLACK>\n";
echo "vendor_id: $row[5]\n"; echo "<TD ALIGN=LEFT><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>#</B></FONT></TD>\n";
echo "last rep called: $row[4]\n"; echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>LEAD ID</B></FONT></TD>\n";
echo "list_id: $row[7]\n"; echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>STATUS</B></FONT></TD>\n";
echo "phone: $row[11]\n"; echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>VENDOR ID</B></FONT></TD>\n";
echo "Name: $row[13] $row[15]\n"; echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>LAST AGENT</B></FONT></TD>\n";
echo "City: $row[19]\n"; echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>LIST ID</B></FONT></TD>\n";
echo "Security: $row[28]\n"; echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>PHONE</B></FONT></TD>\n";
echo "Comments: $row[29]\n\n"; echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>NAME</B></FONT></TD>\n";
echo "\n"; echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>CITY</B></FONT></TD>\n";
echo "</PRE>\n"; echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>SECURITY</B></FONT></TD>\n";
echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>LAST CALL</B></FONT></TD>\n";
# https://www.vicimarketing.com/internal/back_end_sys/uk_cust_serv/index.php?person_id=$row[7]&people_packages_id=&secure_lvl=2&display=2&username=$username&passwd=$passwd echo "</TR>\n";
$o=0;
echo "<a href=\"admin_modify_lead.php?lead_id=$row[0]\">Click here to see the Lead Details</a>\n"; while ($results_to_print > $o)
{
$row=mysql_fetch_row($rslt);
$o++;
if (eregi("1$|3$|5$|7$|9$", $o))
{$bgcolor='bgcolor="#B9CBFD"';}
else
{$bgcolor='bgcolor="#9BB9FB"';}
echo "<TR $bgcolor>\n";
echo "<TD ALIGN=LEFT><FONT FACE=\"ARIAL,HELVETICA\" SIZE=1>$o</FONT></TD>\n";
echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" SIZE=1><a href=\"admin_modify_lead.php?lead_id=$row[0]\">$row[0]</a></FONT></TD>\n";
echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" SIZE=1>$row[3]</FONT></TD>\n";
echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" SIZE=1>$row[5]</FONT></TD>\n";
echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" SIZE=1>$row[4]</FONT></TD>\n";
echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" SIZE=1>$row[7]</FONT></TD>\n";
echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" SIZE=1>$row[11]</FONT></TD>\n";
echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" SIZE=1>$row[13] $row[15]</FONT></TD>\n";
echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" SIZE=1>$row[19]</FONT></TD>\n";
echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" SIZE=1>$row[28]</FONT></TD>\n";
echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" SIZE=1>$row[2]</FONT></TD>\n";
echo "</TR>\n";
}
echo "</TABLE>\n";
} }
} }
+12 -6
View File
@@ -4,6 +4,10 @@
### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 ### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
### ###
# this is the closer popup of a specific call that starts recording the call and allows you to go and fetch info on that caller in the local CRM system. # this is the closer popup of a specific call that starts recording the call and allows you to go and fetch info on that caller in the local CRM system.
# CHANGES
#
# 60620-1020 - Added variable filtering to eliminate SQL injection attack threat
#
require("dbconnect.php"); require("dbconnect.php");
@@ -91,6 +95,8 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
#$DB = '1'; # DEBUG override #$DB = '1'; # DEBUG override
$US = '_'; $US = '_';
@@ -235,15 +241,15 @@ if ($parked_count > 0)
# Local/78600098@demo-6617,2 # Local/78600098@demo-6617,2
$stmt = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$server_ip','','Originate','$DTqueryCID','Channel: $local_DEF$conf_silent_prefix$session_id$local_AMP$ext_context','Context: $ext_context','Exten: $recording_exten','Priority: 1','Callerid: $filename','','','','','')"; $stmt = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','" . mysql_real_escape_string($server_ip) . "','','Originate','$DTqueryCID','Channel: $local_DEF$conf_silent_prefix" . mysql_real_escape_string($session_id) . "$local_AMP$ext_context','Context: $ext_context','Exten: $recording_exten','Priority: 1','Callerid: " . mysql_real_escape_string($filename) . "','','','','','')";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename) values('Zap/$channel','$server_ip','SIP/$SIPexten','$NOW_TIME','$STARTtime','$filename')"; $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename) values('Zap/" . mysql_real_escape_string($channel) . "','" . mysql_real_escape_string($server_ip) . "','SIP/" . mysql_real_escape_string($SIPexten) . "','$NOW_TIME','$STARTtime','" . mysql_real_escape_string($filename) . "')";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$stmt="SELECT recording_id FROM recording_log where filename='$filename'"; $stmt="SELECT recording_id FROM recording_log where filename='" . mysql_real_escape_string($filename) . "'";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -251,7 +257,7 @@ if ($parked_count > 0)
echo "Recording command sent for channel $channel - $filename - $recording_id &nbsp; &nbsp; &nbsp; $NOW_TIME\n<BR><BR>\n"; echo "Recording command sent for channel $channel - $filename - $recording_id &nbsp; &nbsp; &nbsp; $NOW_TIME\n<BR><BR>\n";
$stmt="SELECT full_name from vicidial_users where user='$user'"; $stmt="SELECT full_name from vicidial_users where user='" . mysql_real_escape_string($user) . "'";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -279,7 +285,7 @@ if (eregi('CL_TEST',$channel_group))
{ {
echo "GALLERIA TEST CLOSER GROUP: $channel_group\n"; echo "GALLERIA TEST CLOSER GROUP: $channel_group\n";
$stmt="SELECT user,phone_number from vicidial_list where lead_id='$parked_by';"; $stmt="SELECT user,phone_number from vicidial_list where lead_id='" . mysql_real_escape_string($parked_by) . "';";
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -314,7 +320,7 @@ if ( (eregi('CL_MWCOF',$channel_group)) or (eregi('MWCOF',$group)) or (eregi('TE
{ {
echo "BUYERS EDGE INTERNAL CLOSER GROUP: $channel_group\n"; echo "BUYERS EDGE INTERNAL CLOSER GROUP: $channel_group\n";
$stmt="SELECT user,phone_number from vicidial_list where lead_id='$parked_by';"; $stmt="SELECT user,phone_number from vicidial_list where lead_id='" . mysql_real_escape_string($parked_by) . "';";
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
+12 -6
View File
@@ -4,6 +4,10 @@
### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 ### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
### ###
# this is the closer popup of a specific call that starts recording the call and allows you to go and fetch info on that caller in the local CRM system. # this is the closer popup of a specific call that starts recording the call and allows you to go and fetch info on that caller in the local CRM system.
# CHANGES
#
# 60620-1025 - Added variable filtering to eliminate SQL injection attack threat
#
require("dbconnect.php"); require("dbconnect.php");
@@ -91,6 +95,8 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
#$DB = '1'; # DEBUG override #$DB = '1'; # DEBUG override
$US = '_'; $US = '_';
@@ -221,7 +227,7 @@ else
<? <?
$stmt="SELECT count(*) from live_channels where server_ip='$server_ip' and channel='$customer_zap_channel'"; $stmt="SELECT count(*) from live_channels where server_ip='" . mysql_real_escape_string($server_ip) . "' and channel='" . mysql_real_escape_string($customer_zap_channel) . "'";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -249,15 +255,15 @@ if ($parked_count > 0)
# Local/78600098@demo-6617,2 # Local/78600098@demo-6617,2
$stmt = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$server_ip','','Originate','$DTqueryCID','Channel: $local_DEF$conf_silent_prefix$session_id$local_AMP$ext_context','Context: $ext_context','Exten: $recording_exten','Priority: 1','Callerid: $filename','','','','','')"; $stmt = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','" . mysql_real_escape_string($server_ip) . "','','Originate','$DTqueryCID','Channel: $local_DEF$conf_silent_prefix" . mysql_real_escape_string($session_id) . "$local_AMP$ext_context','Context: $ext_context','Exten: $recording_exten','Priority: 1','Callerid: " . mysql_real_escape_string($filename) . "','','','','','')";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename) values('$channel','$server_ip','SIP/$SIPexten','$NOW_TIME','$STARTtime','$filename')"; $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename) values('$channel','" . mysql_real_escape_string($server_ip) . "','SIP/" . mysql_real_escape_string($SIPexten) . "','$NOW_TIME','$STARTtime','" . mysql_real_escape_string($filename) . "')";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$stmt="SELECT recording_id FROM recording_log where filename='$filename'"; $stmt="SELECT recording_id FROM recording_log where filename='" . mysql_real_escape_string($filename) . "'";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -265,7 +271,7 @@ if ($parked_count > 0)
echo "Recording command sent for channel $channel - $filename - $recording_id &nbsp; &nbsp; &nbsp; $NOW_TIME\n<BR><BR>\n"; echo "Recording command sent for channel $channel - $filename - $recording_id &nbsp; &nbsp; &nbsp; $NOW_TIME\n<BR><BR>\n";
$stmt="SELECT full_name from vicidial_users where user='$fronter'"; $stmt="SELECT full_name from vicidial_users where user='" . mysql_real_escape_string($fronter) . "'";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -278,7 +284,7 @@ if ($parked_count > 0)
echo "<a href=\"$url\">View Customer Info and Disposition Call</a>\n<BR><BR>\n"; echo "<a href=\"$url\">View Customer Info and Disposition Call</a>\n<BR><BR>\n";
$stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$channel_group'"; $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='" . mysql_real_escape_string($channel_group) . "'";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
+13 -5
View File
@@ -4,6 +4,11 @@
### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 ### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
### ###
# the purpose of this script and webpage is to allow for remote or local users of the system to log in and grab phone calls that are coming inbound into the Asterisk server and being put in the parked_channels table while they hear a soundfile for a limited amount of time before being forwarded on to either a set extension or a voicemail box. This gives remote or local agents a way to grab calls without tying up their phone lines all day. The agent sees the refreshing screen of calls on park and when they want to take one they just click on it, and a small window opens that will allow them to grab the call and/or look up more information on the caller through the callerID that is given(if available) # the purpose of this script and webpage is to allow for remote or local users of the system to log in and grab phone calls that are coming inbound into the Asterisk server and being put in the parked_channels table while they hear a soundfile for a limited amount of time before being forwarded on to either a set extension or a voicemail box. This gives remote or local agents a way to grab calls without tying up their phone lines all day. The agent sees the refreshing screen of calls on park and when they want to take one they just click on it, and a small window opens that will allow them to grab the call and/or look up more information on the caller through the callerID that is given(if available)
# CHANGES
#
# 60620-1032 - Added variable filtering to eliminate SQL injection attack threat
# - Added required user/pass to gain access to this page
#
require("dbconnect.php"); require("dbconnect.php");
@@ -43,6 +48,9 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
$STARTtime = date("U"); $STARTtime = date("U");
$TODAY = date("Y-m-d"); $TODAY = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
@@ -128,13 +136,13 @@ if (!$dialplan_number)
if ($extension) if ($extension)
{ {
$stmt="SELECT count(*) from phones where extension='$extension';"; $stmt="SELECT count(*) from phones where extension='" . mysql_real_escape_string($extension) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$ext_found=$row[0]; $ext_found=$row[0];
if ($ext_found > 0) if ($ext_found > 0)
{ {
$stmt="SELECT dialplan_number,server_ip from phones where extension='$extension';"; $stmt="SELECT dialplan_number,server_ip from phones where extension='" . mysql_real_escape_string($extension) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$dialplan_number=$row[0]; $dialplan_number=$row[0];
@@ -181,7 +189,7 @@ if (!$dialplan_number)
$o++; $o++;
} }
$stmt="INSERT INTO vicidial_user_log values('','$user','LOGIN','CLOSER','$NOW_TIME','$STARTtime');"; $stmt="INSERT INTO vicidial_user_log values('','" . mysql_real_escape_string($user) . "','LOGIN','CLOSER','$NOW_TIME','$STARTtime');";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n";
@@ -245,14 +253,14 @@ echo "--------------------------------------------------------------------------
$stmt="SELECT count(*) from parked_channels where server_ip='$server_ip'"; $stmt="SELECT count(*) from parked_channels where server_ip='" . mysql_real_escape_string($server_ip) . "'";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$parked_count = $row[0]; $parked_count = $row[0];
if ($parked_count > 0) if ($parked_count > 0)
{ {
$stmt="SELECT * from parked_channels where server_ip='$server_ip' and channel_group LIKE \"CL_%\" order by channel_group,parked_time"; $stmt="SELECT * from parked_channels where server_ip='" . mysql_real_escape_string($server_ip) . "' and channel_group LIKE \"CL_%\" order by channel_group,parked_time";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$parked_to_print = mysql_num_rows($rslt); $parked_to_print = mysql_num_rows($rslt);
+15 -6
View File
@@ -4,6 +4,10 @@
### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 ### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
### ###
# this is the closer disposition screen of a call that has been grabbed. This allows the closer to modify customer information and disposition the call # this is the closer disposition screen of a call that has been grabbed. This allows the closer to modify customer information and disposition the call
# CHANGES
#
# 60619-1641 - Added variable filtering to eliminate SQL injection attack threat
#
require("dbconnect.php"); require("dbconnect.php");
@@ -77,6 +81,11 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
$STARTtime = date("U"); $STARTtime = date("U");
$TODAY = date("Y-m-d"); $TODAY = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
@@ -147,16 +156,16 @@ if ($end_call > 0)
$call_length = ($STARTtime - $call_began); $call_length = ($STARTtime - $call_began);
### insert a NEW record to the vicidial_closer_log table ### insert a NEW record to the vicidial_closer_log table
$stmt="INSERT INTO vicidial_closer_log (lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed) values('$lead_id','$list_id','$campaign_id','$parked_time','$call_began','$STARTtime','$call_length','$status','$phone_code','$phone_number','$PHP_AUTH_USER','$comments','Y')"; $stmt="INSERT INTO vicidial_closer_log (lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed) values('" . mysql_real_escape_string($lead_id) . "','" . mysql_real_escape_string($list_id) . "','" . mysql_real_escape_string($campaign_id) . "','" . mysql_real_escape_string($parked_time) . "','" . mysql_real_escape_string($call_began) . "','$STARTtime','" . mysql_real_escape_string($call_length) . "','" . mysql_real_escape_string($status) . "','" . mysql_real_escape_string($phone_code) . "','" . mysql_real_escape_string($phone_number) . "','$PHP_AUTH_USER','" . mysql_real_escape_string($comments) . "','Y')";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
### update the lead record in the vicidial_list table ### update the lead record in the vicidial_list table
$stmt="UPDATE vicidial_list set status='$status',first_name='$first_name',last_name='$last_name',address1='$address1',address2='$address2',address3='$address3',city='$city',state='$state',province='$province',postal_code='$postal_code',country_code='$country_code',alt_phone='$alt_phone',email='$email',security_phrase='$security',comments='$comments' where lead_id='$lead_id'"; $stmt="UPDATE vicidial_list set status='" . mysql_real_escape_string($status) . "',first_name='" . mysql_real_escape_string($first_name) . "',last_name='" . mysql_real_escape_string($last_name) . "',address1='" . mysql_real_escape_string($address1) . "',address2='" . mysql_real_escape_string($address2) . "',address3='" . mysql_real_escape_string($address3) . "',city='" . mysql_real_escape_string($city) . "',state='" . mysql_real_escape_string($state) . "',province='" . mysql_real_escape_string($province) . "',postal_code='" . mysql_real_escape_string($postal_code) . "',country_code='" . mysql_real_escape_string($country_code) . "',alt_phone='" . mysql_real_escape_string($alt_phone) . "',email='" . mysql_real_escape_string($email) . "',security_phrase='" . mysql_real_escape_string($security) . "',comments='" . mysql_real_escape_string($comments) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "'";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$stmt="SELECT count(*) from live_channels where server_ip='$server_ip' and channel='$channel' and extension like \"%$extension%\""; $stmt="SELECT count(*) from live_channels where server_ip='$server_ip' and channel='" . mysql_real_escape_string($channel) . "' and extension like \"%" . mysql_real_escape_string($extension) . "%\"";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -168,7 +177,7 @@ $call_length = ($STARTtime - $call_began);
$DTqueryCID = "RR$FILE_datetime$PHP_AUTH_USER"; $DTqueryCID = "RR$FILE_datetime$PHP_AUTH_USER";
### insert a NEW record to the vicidial_manager table to be processed ### insert a NEW record to the vicidial_manager table to be processed
$stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$DTqueryCID','Channel: $channel','','','','','','','','','')"; $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','" . mysql_real_escape_string($server_ip) . "','','Hangup','$DTqueryCID','Channel: " . mysql_real_escape_string($channel) . "','','','','','','','','','')";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
@@ -184,7 +193,7 @@ $call_length = ($STARTtime - $call_began);
} }
else else
{ {
$stmt="SELECT count(*) from vicidial_list where lead_id='$lead_id'"; $stmt="SELECT count(*) from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -193,7 +202,7 @@ else
if ($lead_count > 0) if ($lead_count > 0)
{ {
$stmt="SELECT * from vicidial_list where lead_id='$lead_id'"; $stmt="SELECT * from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
+13 -6
View File
@@ -4,6 +4,10 @@
### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 ### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
### ###
# this is the closer popup of a specific call that grabs the call and allows you to go and fetch info on that caller in the local CRM system. # this is the closer popup of a specific call that grabs the call and allows you to go and fetch info on that caller in the local CRM system.
# CHANGES
#
# 60620-1029 - Added variable filtering to eliminate SQL injection attack threat
#
require("dbconnect.php"); require("dbconnect.php");
@@ -43,6 +47,9 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
#$DB=1; #$DB=1;
$US = '_'; $US = '_';
@@ -153,7 +160,7 @@ $parked_count = $row[0];
if ($parked_count > 0) if ($parked_count > 0)
{ {
$stmt="DELETE from parked_channels where server_ip='$server_ip' and parked_time='$parked_time' and channel='$channel' LIMIT 1"; $stmt="DELETE from parked_channels where server_ip='" . mysql_real_escape_string($server_ip) . "' and parked_time='" . mysql_real_escape_string($parked_time) . "' and channel='" . mysql_real_escape_string($channel) . "' LIMIT 1";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
@@ -181,13 +188,13 @@ if ($parked_count > 0)
# echo "Recording command sent for channel $channel - $filename - $recording_id<BR>\n"; # echo "Recording command sent for channel $channel - $filename - $recording_id<BR>\n";
### insert a NEW record to the vicidial_manager table to be processed ### insert a NEW record to the vicidial_manager table to be processed
$stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$DTqueryCID','Exten: $dialplan_number','Channel: $channel','Context: $ext_context','Priority: 1','Callerid: $DTqueryCID','','','','','')"; $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','" . mysql_real_escape_string($server_ip) . "','','Redirect','$DTqueryCID','Exten: $dialplan_number','Channel: " . mysql_real_escape_string($channel) . "','Context: $ext_context','Priority: 1','Callerid: $DTqueryCID','','','','','')";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
echo "Redirect command sent for channel $channel &nbsp; &nbsp; &nbsp; $NOW_TIME\n<BR><BR>\n"; echo "Redirect command sent for channel $channel &nbsp; &nbsp; &nbsp; $NOW_TIME\n<BR><BR>\n";
$stmt="SELECT full_name from vicidial_users where user='$parked_by'"; $stmt="SELECT full_name from vicidial_users where user='" . mysql_real_escape_string($parked_by) . "'";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -201,7 +208,7 @@ if ($parked_count > 0)
$stmt="UPDATE park_log set grab_time='$NOW_TIME',status='TALKING',extension='$extension',user='$PHP_AUTH_USER' where parked_time='$parked_time' and server_ip='$server_ip' and channel='$channel'"; $stmt="UPDATE park_log set grab_time='$NOW_TIME',status='TALKING',extension='" . mysql_real_escape_string($extension) . "',user='$PHP_AUTH_USER' where parked_time='" . mysql_real_escape_string($parked_time) . "' and server_ip='" . mysql_real_escape_string($server_ip) . "' and channel='" . mysql_real_escape_string($channel) . "'";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$fp = fopen ("./closer_SQL_updates.txt", "a"); $fp = fopen ("./closer_SQL_updates.txt", "a");
fwrite ($fp, "$date|$PHP_AUTH_USER|$stmt|\n"); fwrite ($fp, "$date|$PHP_AUTH_USER|$stmt|\n");
@@ -217,7 +224,7 @@ if (eregi('CL_TEST',$channel_group))
{ {
echo "GALLERIA TEST CLOSER GROUP: $channel_group\n"; echo "GALLERIA TEST CLOSER GROUP: $channel_group\n";
$stmt="SELECT user,phone_number from vicidial_list where lead_id='$parked_by';"; $stmt="SELECT user,phone_number from vicidial_list where lead_id='" . mysql_real_escape_string($parked_by) . "';";
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -252,7 +259,7 @@ if (eregi('CL_MWCOF',$channel_group))
{ {
echo "GALLERIA INTERNAL CLOSER GROUP: $channel_group\n"; echo "GALLERIA INTERNAL CLOSER GROUP: $channel_group\n";
$stmt="SELECT user,phone_number from vicidial_list where lead_id='$parked_by';"; $stmt="SELECT user,phone_number from vicidial_list where lead_id='" . mysql_real_escape_string($parked_by) . "';";
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
+26 -4
View File
@@ -3,6 +3,11 @@
### ###
### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 ### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
### ###
# CHANGES
#
# 60620-1014 - Added variable filtering to eliminate SQL injection attack threat
# - Added required user/pass to gain access to this page
#
require("dbconnect.php"); require("dbconnect.php");
@@ -20,6 +25,23 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_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;";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$auth=$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;
}
$STARTtime = date("U"); $STARTtime = date("U");
$TODAY = date("Y-m-d"); $TODAY = date("Y-m-d");
$date_with_hour_default = date("Y-m-d H"); $date_with_hour_default = date("Y-m-d H");
@@ -98,7 +120,7 @@ echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"
if ( ($group) and ($status) and ($date_with_hour) ) if ( ($group) and ($status) and ($date_with_hour) )
{ {
$stmt="SELECT user,full_name from vicidial_users where user_group = '$group' order by full_name desc;"; $stmt="SELECT user,full_name from vicidial_users where user_group = '" . mysql_real_escape_string($group) . "' order by full_name desc;";
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$tsrs_to_print = mysql_num_rows($rslt); $tsrs_to_print = mysql_num_rows($rslt);
@@ -114,19 +136,19 @@ $tsrs_to_print = mysql_num_rows($rslt);
$o=0; $o=0;
while($o < $tsrs_to_print) while($o < $tsrs_to_print)
{ {
$stmt="select count(*) from vicidial_log where call_date >= '$date_with_hour:00:00' and call_date <= '$date_with_hour:59:59' and user='$VDuser[$o]';"; $stmt="select count(*) from vicidial_log where call_date >= '" . mysql_real_escape_string($date_with_hour) . ":00:00' and call_date <= '" . mysql_real_escape_string($date_with_hour) . ":59:59' and user='$VDuser[$o]';";
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$VDtotal[$o] = "$row[0]"; $VDtotal[$o] = "$row[0]";
$stmt="select count(*) from vicidial_log where call_date >= '$date_no_hour 00:00:00' and call_date <= '$date_no_hour 23:59:59' and user='$VDuser[$o]' and status='$status';"; $stmt="select count(*) from vicidial_log where call_date >= '" . mysql_real_escape_string($date_no_hour) . " 00:00:00' and call_date <= '" . mysql_real_escape_string($date_no_hour) . " 23:59:59' and user='$VDuser[$o]' and status='" . mysql_real_escape_string($status) . "';";
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$VDday[$o] = "$row[0]"; $VDday[$o] = "$row[0]";
$stmt="select count(*) from vicidial_log where call_date >= '$date_with_hour:00:00' and call_date <= '$date_with_hour:59:59' and user='$VDuser[$o]' and status='$status';"; $stmt="select count(*) from vicidial_log where call_date >= '" . mysql_real_escape_string($date_with_hour) . ":00:00' and call_date <= '" . mysql_real_escape_string($date_with_hour) . ":59:59' and user='$VDuser[$o]' and status='" . mysql_real_escape_string($status) . "';";
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
+8 -2
View File
@@ -10,10 +10,14 @@
# 51128-1108 - Removed PHP global vars requirement # 51128-1108 - Removed PHP global vars requirement
# 60421-1043 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60421-1043 - check GET/POST vars lines with isset to not trigger PHP NOTICES
# 60616-1006 - added listID override and gmt_offset lookup while loading # 60616-1006 - added listID override and gmt_offset lookup while loading
# 60619-1652 - Added variable filtering to eliminate SQL injection attack threat
# #
# make sure vicidial_list exists and that your file follows the formatting correctly. This page does not dedupe or do any other lead filtering actions yet at this time. # make sure vicidial_list exists and that your file follows the formatting correctly. This page does not dedupe or do any other lead filtering actions yet at this time.
# #
$version = '1.1.12';
$build = '60619-1652';
header ("Content-type: text/html; charset=utf-8"); header ("Content-type: text/html; charset=utf-8");
require("dbconnect.php"); require("dbconnect.php");
@@ -34,8 +38,10 @@ $SUBMIT=$_GET["SUBMIT"]; if (!$SUBMIT) {$SUBMIT=$_POST["SUBMIT"];}
#$DB=1; #$DB=1;
#$DBX=1; #$DBX=1;
$version = '1.1.12'; $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$build = '60616-1006'; $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
$list_id_override = ereg_replace("[^0-9]","",$list_id_override);
$script_name = getenv("SCRIPT_NAME"); $script_name = getenv("SCRIPT_NAME");
$server_name = getenv("SERVER_NAME"); $server_name = getenv("SERVER_NAME");
+7
View File
@@ -5,6 +5,10 @@
# #
# this is the main frame page for the lead loading section. This is where you # this is the main frame page for the lead loading section. This is where you
# would upload a file and have it inserted into vicidial_list # would upload a file and have it inserted into vicidial_list
#
# changes:
# 60620-1149 - Added variable filtering to eliminate SQL injection attack threat
#
require("dbconnect.php"); require("dbconnect.php");
@@ -12,6 +16,9 @@ $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
$PHP_SELF=$_SERVER['PHP_SELF']; $PHP_SELF=$_SERVER['PHP_SELF'];
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
$STARTtime = date("U"); $STARTtime = date("U");
$TODAY = date("Y-m-d"); $TODAY = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
+9 -2
View File
@@ -12,11 +12,12 @@
# 60421-1624 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60421-1624 - check GET/POST vars lines with isset to not trigger PHP NOTICES
# 60616-1240 - added listID override # 60616-1240 - added listID override
# 60616-1604 - added gmt lookup for each lead # 60616-1604 - added gmt lookup for each lead
# 60619-1651 - Added variable filtering to eliminate SQL injection attack threat
# #
# make sure vicidial_list exists and that your file follows the formatting correctly. This page does not dedupe or do any other lead filtering actions yet at this time. # make sure vicidial_list exists and that your file follows the formatting correctly. This page does not dedupe or do any other lead filtering actions yet at this time.
$version = '1.1.12'; $version = '1.1.12-1';
$build = '60616-1604'; $build = '60619-1651';
require("dbconnect.php"); require("dbconnect.php");
@@ -96,6 +97,12 @@ if (isset($_GET["list_id_override"])) {$list_id_override=$_GET["list_id_overr
# $country_field=$_GET["country_field"]; if (!$country_field) {$country_field=$_POST["country_field"];} # $country_field=$_GET["country_field"]; if (!$country_field) {$country_field=$_POST["country_field"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
$list_id_override = ereg_replace("[^0-9]","",$list_id_override);
$STARTtime = date("U"); $STARTtime = date("U");
$TODAY = date("Y-m-d"); $TODAY = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
+25 -2
View File
@@ -4,6 +4,12 @@
### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 ### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
### ###
# grab: $server_ip $station $session_id # grab: $server_ip $station $session_id
#
# CHANGES
#
# 60620-1011 - Added variable filtering to eliminate SQL injection attack threat
# - Added required user/pass to gain access to this page
#
require("dbconnect.php"); require("dbconnect.php");
@@ -23,6 +29,23 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_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;";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$auth=$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;
}
$STARTtime = date("U"); $STARTtime = date("U");
$TODAY = date("Y-m-d"); $TODAY = date("Y-m-d");
$MYSQL_datetime = date("Y-m-d H:i:s"); $MYSQL_datetime = date("Y-m-d H:i:s");
@@ -97,11 +120,11 @@ if ($NEW_RECORDING)
$conf_silent_prefix = '7'; $conf_silent_prefix = '7';
$ext_context = 'demo'; $ext_context = 'demo';
$stmt="INSERT INTO vicidial_manager values('','','$MYSQL_datetime','NEW','N','$server_ip','','Originate','RB$FILE_datetime$station','Channel: $local_DEF$conf_silent_prefix$session_id$local_AMP$ext_context','Context: $ext_context','Exten: 8309','Priority: 1','Callerid: $FILE_datetime$station','','','','','')"; $stmt="INSERT INTO vicidial_manager values('','','$MYSQL_datetime','NEW','N','" . mysql_real_escape_string($server_ip) . "','','Originate','RB$FILE_datetime" . mysql_real_escape_string($station) . "','Channel: $local_DEF$conf_silent_prefix" . mysql_real_escape_string($session_id) . "$local_AMP$ext_context','Context: $ext_context','Exten: 8309','Priority: 1','Callerid: $FILE_datetime" . mysql_real_escape_string($station) . "','','','','','')";
echo "|$stmt|\n<BR><BR>\n"; echo "|$stmt|\n<BR><BR>\n";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$stmt="INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename) values('$session_id','$server_ip','$station','$MYSQL_datetime','$secX','$FILE_datetime$station')"; $stmt="INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename) values('" . mysql_real_escape_string($session_id) . "','" . mysql_real_escape_string($server_ip) . "','" . mysql_real_escape_string($station) . "','$MYSQL_datetime','$secX','$FILE_datetime" . mysql_real_escape_string($station) . "')";
echo "|$stmt|\n<BR><BR>\n"; echo "|$stmt|\n<BR><BR>\n";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
+14 -6
View File
@@ -5,6 +5,11 @@
### ###
# this is the remote agent disposition screen for calls sent to remote agents. This allows the remote agent to modify customer information and disposition the call # this is the remote agent disposition screen for calls sent to remote agents. This allows the remote agent to modify customer information and disposition the call
# CHANGES
#
# 60619-1626 - Added variable filtering to eliminate SQL injection attack threat
#
require("dbconnect.php"); require("dbconnect.php");
@@ -101,8 +106,11 @@ $ext_context = 'demo';
if (!isset($begin_date)) {$begin_date = $TODAY;} if (!isset($begin_date)) {$begin_date = $TODAY;}
if (!isset($end_date)) {$end_date = $TODAY;} if (!isset($end_date)) {$end_date = $TODAY;}
#$link=mysql_connect("localhost", "cron", "1234");
#mysql_select_db("asterisk"); $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_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 > 2;"; $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 2;";
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
@@ -167,12 +175,12 @@ if ($end_call > 0)
$call_length = ($STARTtime - $call_began); $call_length = ($STARTtime - $call_began);
### insert a NEW record to the vicidial_closer_log table ### insert a NEW record to the vicidial_closer_log table
$stmt="UPDATE vicidial_closer_log set end_epoch='$STARTtime', length_in_sec='$call_length', status='$status', user='$PHP_AUTH_USER' where lead_id='$lead_id' order by start_epoch desc limit 1;"; $stmt="UPDATE vicidial_closer_log set end_epoch='$STARTtime', length_in_sec='" . mysql_real_escape_string($call_length) . "', status='" . mysql_real_escape_string($status) . "', user='$PHP_AUTH_USER' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by start_epoch desc limit 1;";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
### update the lead record in the vicidial_list table ### update the lead record in the vicidial_list table
$stmt="UPDATE vicidial_list set status='$status',first_name='$first_name',last_name='$last_name',address1='$address1',address2='$address2',address3='$address3',city='$city',state='$state',province='$province',postal_code='$postal_code',country_code='$country_code',alt_phone='$alt_phone',email='$email',security_phrase='$security',comments='$comments',user='$PHP_AUTH_USER' where lead_id='$lead_id'"; $stmt="UPDATE vicidial_list set status='" . mysql_real_escape_string($status) . "',first_name='" . mysql_real_escape_string($first_name) . "',last_name='" . mysql_real_escape_string($last_name) . "',address1='" . mysql_real_escape_string($address1) . "',address2='" . mysql_real_escape_string($address2) . "',address3='" . mysql_real_escape_string($address3) . "',city='" . mysql_real_escape_string($city) . "',state='" . mysql_real_escape_string($state) . "',province='" . mysql_real_escape_string($province) . "',postal_code='" . mysql_real_escape_string($postal_code) . "',country_code='" . mysql_real_escape_string($country_code) . "',alt_phone='" . mysql_real_escape_string($alt_phone) . "',email='" . mysql_real_escape_string($email) . "',security_phrase='" . mysql_real_escape_string($security) . "',comments='" . mysql_real_escape_string($comments) . "',user='$PHP_AUTH_USER' where lead_id='" . mysql_real_escape_string($lead_id) . "'";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
@@ -183,7 +191,7 @@ $call_length = ($STARTtime - $call_began);
} }
else else
{ {
$stmt="SELECT count(*) from vicidial_list where lead_id='$lead_id'"; $stmt="SELECT count(*) from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -192,7 +200,7 @@ else
if ($lead_count > 0) if ($lead_count > 0)
{ {
$stmt="SELECT * from vicidial_list where lead_id='$lead_id'"; $stmt="SELECT * from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
+29 -2
View File
@@ -3,8 +3,35 @@
### ###
### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 ### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
### ###
# CHANGES
#
# 60620-1037 - Added Link back to Admin section
# - Added required user/pass to gain access to this page
#
require("dbconnect.php"); require("dbconnect.php");
$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_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;";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$auth=$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;
}
$NOW_DATE = date("Y-m-d"); $NOW_DATE = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
$STARTtime = date("U"); $STARTtime = date("U");
@@ -31,8 +58,8 @@ while ($i < $servers_to_print)
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<TITLE>VICIDIAL: Server Stats and Reports</TITLE></HEAD><BODY BGCOLOR=WHITE> <TITLE>VICIDIAL: Server Stats and Reports</TITLE></HEAD><BODY BGCOLOR=WHITE>
<FONT SIZE=2> <FONT SIZE=4><B>VICIDIAL: Server Stats and Reports</B></font> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
<H1>VICIDIAL: Server Stats and Reports</H1> <a href="./admin.php"><FONT FACE="ARIAL,HELVETICA" COLOR=BLACK SIZE=2>BACK TO ADMIN</FONT></a><BR><BR>
<UL> <UL>
<LI><a href="AST_timeonVDADall.php"><FONT FACE="ARIAL,HELVETICA" COLOR=BLACK SIZE=2>TIME ON VDAD (per campaign)</a> | <a href="AST_timeonVDADall_SIPmonitor.php"><FONT FACE="ARIAL,HELVETICA" COLOR=BLACK SIZE=2>SIP Listen Version</a></FONT> <LI><a href="AST_timeonVDADall.php"><FONT FACE="ARIAL,HELVETICA" COLOR=BLACK SIZE=2>TIME ON VDAD (per campaign)</a> | <a href="AST_timeonVDADall_SIPmonitor.php"><FONT FACE="ARIAL,HELVETICA" COLOR=BLACK SIZE=2>SIP Listen Version</a></FONT>
<LI><a href="AST_parkstats.php"><FONT FACE="ARIAL,HELVETICA" COLOR=BLACK SIZE=2>PARK REPORT</a></FONT> <LI><a href="AST_parkstats.php"><FONT FACE="ARIAL,HELVETICA" COLOR=BLACK SIZE=2>PARK REPORT</a></FONT>
+11 -6
View File
@@ -3,6 +3,10 @@
### ###
### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 ### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
### ###
# CHANGES
#
# 60619-1743 - Added variable filtering to eliminate SQL injection attack threat
#
header ("Content-type: text/html; charset=utf-8"); header ("Content-type: text/html; charset=utf-8");
@@ -24,6 +28,9 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
$STARTtime = date("U"); $STARTtime = date("U");
$TODAY = date("Y-m-d"); $TODAY = date("Y-m-d");
@@ -52,8 +59,6 @@ $browser = getenv("HTTP_USER_AGENT");
if($auth>0) if($auth>0)
{ {
$office_no=strtoupper($PHP_AUTH_USER);
$password=strtoupper($PHP_AUTH_PW);
$stmt="SELECT full_name from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; $stmt="SELECT full_name from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -109,7 +114,7 @@ echo "</B></TD></TR>\n";
echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n";
$stmt="SELECT count(*),status, sum(length_in_sec) from vicidial_log where user='$user' and call_date >= '$begin_date 0:00:01' and call_date <= '$end_date 23:59:59' group by status order by status"; $stmt="SELECT count(*),status, sum(length_in_sec) from vicidial_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' group by status order by status";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$statuses_to_print = mysql_num_rows($rslt); $statuses_to_print = mysql_num_rows($rslt);
@@ -147,7 +152,7 @@ echo "<tr><td><font size=2>STATUS</td><td align=right><font size=2>COUNT</td><td
$o++; $o++;
} }
$stmt="SELECT sum(length_in_sec) from vicidial_log where user='$user' and call_date >= '$begin_date 0:00:01' and call_date <= '$end_date 23:59:59'"; $stmt="SELECT sum(length_in_sec) from vicidial_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59'";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$counts_to_print = mysql_num_rows($rslt); $counts_to_print = mysql_num_rows($rslt);
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -170,7 +175,7 @@ echo "<B>LOGIN/LOGOUT TIME:</B>\n";
echo "<TABLE width=400 cellspacing=0 cellpadding=1>\n"; echo "<TABLE width=400 cellspacing=0 cellpadding=1>\n";
echo "<tr><td><font size=2>EVENT </td><td align=right><font size=2> DATE</td><td align=right><font size=2> CAMPAIGN</td><td align=right><font size=2>HOURS:MINUTES</td></tr>\n"; echo "<tr><td><font size=2>EVENT </td><td align=right><font size=2> DATE</td><td align=right><font size=2> CAMPAIGN</td><td align=right><font size=2>HOURS:MINUTES</td></tr>\n";
$stmt="SELECT event,event_epoch,event_date,campaign_id from vicidial_user_log where user='$user' and event_date >= '$begin_date 0:00:01' and event_date <= '$end_date 23:59:59'"; $stmt="SELECT event,event_epoch,event_date,campaign_id from vicidial_user_log where user='" . mysql_real_escape_string($user) . "' and event_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and event_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59'";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$events_to_print = mysql_num_rows($rslt); $events_to_print = mysql_num_rows($rslt);
@@ -253,7 +258,7 @@ echo "<B>LAST 50 CALLS:</B>\n";
echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n"; echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n";
echo "<tr><td><font size=2>DATE/TIME </td><td align=left><font size=2>LENGTH</td><td align=left><font size=2> STATUS</td><td align=left><font size=2> PHONE</td><td align=right><font size=2> CAMPAIGN</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td></tr>\n"; echo "<tr><td><font size=2>DATE/TIME </td><td align=left><font size=2>LENGTH</td><td align=left><font size=2> STATUS</td><td align=left><font size=2> PHONE</td><td align=right><font size=2> CAMPAIGN</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td></tr>\n";
$stmt="select * from vicidial_log where user='$user' order by uniqueid desc limit 50;"; $stmt="select * from vicidial_log where user='" . mysql_real_escape_string($user) . "' order by uniqueid desc limit 50;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$logs_to_print = mysql_num_rows($rslt); $logs_to_print = mysql_num_rows($rslt);
+11 -6
View File
@@ -3,6 +3,10 @@
### ###
### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 ### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
### ###
# CHANGES
#
# 60619-1738 - Added variable filtering to eliminate SQL injection attack threat
#
header ("Content-type: text/html; charset=utf-8"); header ("Content-type: text/html; charset=utf-8");
@@ -26,6 +30,9 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
$STARTtime = date("U"); $STARTtime = date("U");
$TODAY = date("Y-m-d"); $TODAY = date("Y-m-d");
@@ -54,8 +61,6 @@ $browser = getenv("HTTP_USER_AGENT");
if($auth>0) if($auth>0)
{ {
$office_no=strtoupper($PHP_AUTH_USER);
$password=strtoupper($PHP_AUTH_PW);
$stmt="SELECT full_name,change_agent_campaign from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; $stmt="SELECT full_name,change_agent_campaign from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -70,12 +75,12 @@ $browser = getenv("HTTP_USER_AGENT");
fclose($fp); fclose($fp);
} }
$stmt="SELECT full_name from vicidial_users where user='$user';"; $stmt="SELECT full_name from vicidial_users where user='" . mysql_real_escape_string($user) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$full_name = $row[0]; $full_name = $row[0];
$stmt="SELECT * from vicidial_live_agents where user='$user';"; $stmt="SELECT * from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$agents_to_print = mysql_num_rows($rslt); $agents_to_print = mysql_num_rows($rslt);
@@ -130,7 +135,7 @@ echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVET
if ($stage == "live_campaign_change") if ($stage == "live_campaign_change")
{ {
$stmt="UPDATE vicidial_live_agents set campaign_id='$group' where user='$user';"; $stmt="UPDATE vicidial_live_agents set campaign_id='" . mysql_real_escape_string($group) . "' where user='" . mysql_real_escape_string($user) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
echo "Agent $user - $full_name changed to $group campaign<BR>\n"; echo "Agent $user - $full_name changed to $group campaign<BR>\n";
@@ -140,7 +145,7 @@ if ($stage == "live_campaign_change")
if ($stage == "log_agent_out") if ($stage == "log_agent_out")
{ {
$stmt="DELETE from vicidial_live_agents where user='$user';"; $stmt="DELETE from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
echo "Agent $user - $full_name has been emergency logged out, make sure they close their web browser<BR>\n"; echo "Agent $user - $full_name has been emergency logged out, make sure they close their web browser<BR>\n";
+16 -11
View File
@@ -7,9 +7,13 @@
# 50307-1721 - First version # 50307-1721 - First version
# 51123-1502 - removed requirement of PHP Globals=on # 51123-1502 - removed requirement of PHP Globals=on
# 60421-1229 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60421-1229 - check GET/POST vars lines with isset to not trigger PHP NOTICES
# 60619-1603 - Added variable filtering to eliminate SQL injection attack threat
# #
# make sure you have added a user to the vicidial_users MySQL table with at least user_level 4 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 4 to access this page the first time
$version = '1.1.12';
$build = '60619-1603';
require("dbconnect.php"); require("dbconnect.php");
$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
@@ -59,10 +63,11 @@ if ($force_logout)
exit; exit;
} }
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
$popup_page = './closer_popup.php'; $popup_page = './closer_popup.php';
$version = '1.1.11';
$build = '60421-1229';
$STARTtime = date("U"); $STARTtime = date("U");
$NOW_DATE = date("Y-m-d"); $NOW_DATE = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
@@ -195,7 +200,7 @@ if (strlen($ADD)>4)
##### get inbound groups listing for checkboxes ##### get inbound groups listing for checkboxes
if ( (($ADD==31111) or ($ADD==31111)) and (count($groups)<1) ) if ( (($ADD==31111) or ($ADD==31111)) and (count($groups)<1) )
{ {
$stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$closer_campaigns = $row[0]; $closer_campaigns = $row[0];
@@ -254,7 +259,7 @@ if ($ADD==31111)
{ {
echo "<FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2>"; echo "<FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2>";
$stmt="SELECT * from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; $stmt="SELECT * from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$remote_agent_id = $row[0]; $remote_agent_id = $row[0];
@@ -299,7 +304,7 @@ if ($ADD==41111)
{echo "<br>REMOTE AGENTS NOT MODIFIED - Please go back and look at the data you entered\n";} {echo "<br>REMOTE AGENTS NOT MODIFIED - Please go back and look at the data you entered\n";}
else else
{ {
$stmt="UPDATE vicidial_remote_agents set number_of_lines='$number_of_lines', conf_exten='$conf_exten', status='$status', closer_campaigns='$groups_value' where remote_agent_id='$remote_agent_id';"; $stmt="UPDATE vicidial_remote_agents set number_of_lines='" . mysql_real_escape_string($number_of_lines) . "', conf_exten='" . mysql_real_escape_string($conf_exten) . "', status='" . mysql_real_escape_string($status) . "', closer_campaigns='" . mysql_real_escape_string($groups_value) . "' where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
# echo "$stmt\n"; # echo "$stmt\n";
@@ -307,12 +312,12 @@ if ($ADD==41111)
### LOG CHANGES TO LOG FILE ### ### LOG CHANGES TO LOG FILE ###
$fp = fopen ("./admin_changes_log.txt", "a"); $fp = fopen ("./admin_changes_log.txt", "a");
fwrite ($fp, "$date|MODIFY REMOTE AGENTS ENTRY |$PHP_AUTH_USER|$ip|UPDATE vicidial_remote_agents set number_of_lines='$number_of_lines', conf_exten='$conf_exten', status='$status', closer_campaigns='$groups_value' where remote_agent_id='$remote_agent_id'|\n"); fwrite ($fp, "$date|MODIFY REMOTE AGENTS ENTRY |$PHP_AUTH_USER|$ip|$stmt|\n");
fclose($fp); fclose($fp);
} }
$stmt="SELECT * from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; $stmt="SELECT * from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$remote_agent_id = $row[0]; $remote_agent_id = $row[0];
@@ -351,7 +356,7 @@ echo "NOTE: It can take up to 30 seconds for changes submitted on this screen to
if ($ADD==61111) if ($ADD==61111)
{ {
echo "<FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><PRE>"; echo "<FONT FACE=\"Courier\" COLOR=BLACK SIZE=2><PRE>";
if ( (strlen($server_ip) < 2) or (strlen($user) < 2) ) if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
{echo "<br>REMOTE AGENTS ERROR - Please go back and look at the data you entered\n";} {echo "<br>REMOTE AGENTS ERROR - Please go back and look at the data you entered\n";}
@@ -363,7 +368,7 @@ if ($ADD==61111)
while($k < $number_of_lines) while($k < $number_of_lines)
{ {
$nextuser=($user + $k); $nextuser=($user + $k);
$users_list .= "'$nextuser',"; $users_list .= "'" . mysql_real_escape_string($nextuser) . "',";
$k++; $k++;
} }
$users_list = preg_replace("/.$/","",$users_list); $users_list = preg_replace("/.$/","",$users_list);
@@ -374,7 +379,7 @@ if ($ADD==61111)
echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n";
$stmt="select extension,user,lead_id,channel,status,last_call_time,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents where status NOT IN('PAUSED') and server_ip='$server_ip' and user IN($users_list) order by extension;"; $stmt="select extension,user,lead_id,channel,status,last_call_time,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents where status NOT IN('PAUSED') and server_ip='" . mysql_real_escape_string($server_ip) . "' and user IN($users_list) order by extension;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$talking_to_print = mysql_num_rows($rslt); $talking_to_print = mysql_num_rows($rslt);
@@ -463,7 +468,7 @@ if ($ADD==71111)
echo "<INPUT TYPE=HIDDEN NAME=user VALUE=\"$user\">\n"; echo "<INPUT TYPE=HIDDEN NAME=user VALUE=\"$user\">\n";
echo "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n"; echo "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n";
echo "</FORM>\n\n"; echo "</FORM>\n\n";
echo "<FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><PRE>"; echo "<FONT FACE=\"Courier\" COLOR=BLACK SIZE=2><PRE>";
if ( (strlen($server_ip) < 2) or (strlen($user) < 2) ) if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
{echo "<br>REMOTE AGENTS ERROR - Please go back and look at the data you entered\n";} {echo "<br>REMOTE AGENTS ERROR - Please go back and look at the data you entered\n";}
+21 -2
View File
@@ -37,6 +37,7 @@
# 50610-1155 - Added NULL check on MySQL results to reduced errors # 50610-1155 - Added NULL check on MySQL results to reduced errors
# 50711-1209 - removed HTTP authentication in favor of user/pass vars # 50711-1209 - removed HTTP authentication in favor of user/pass vars
# 60421-1155 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60421-1155 - check GET/POST vars lines with isset to not trigger PHP NOTICES
# 60619-1118 - Added variable filters to close security holes for login form
# #
require("dbconnect.php"); require("dbconnect.php");
@@ -79,6 +80,24 @@ if (isset($_GET["textareawidth"])) {$textareawidth=$_GET["textareawidth"];}
if (isset($_GET["field_name"])) {$field_name=$_GET["field_name"];} if (isset($_GET["field_name"])) {$field_name=$_GET["field_name"];}
elseif (isset($_POST["field_name"])) {$field_name=$_POST["field_name"];} elseif (isset($_POST["field_name"])) {$field_name=$_POST["field_name"];}
### security strip all non-alphanumeric characters out of the variables ###
$user=ereg_replace("[^0-9a-zA-Z]","",$user);
$pass=ereg_replace("[^0-9a-zA-Z]","",$pass);
$ADD=ereg_replace("[^0-9]","",$ADD);
$order=ereg_replace("[^0-9a-zA-Z]","",$order);
$format=ereg_replace("[^0-9a-zA-Z]","",$format);
$bgcolor=ereg_replace("[^\#0-9a-zA-Z]","",$bgcolor);
$txtcolor=ereg_replace("[^\#0-9a-zA-Z]","",$txtcolor);
$txtsize=ereg_replace("[^0-9a-zA-Z]","",$txtsize);
$selectsize=ereg_replace("[^0-9a-zA-Z]","",$selectsize);
$selectfontsize=ereg_replace("[^0-9a-zA-Z]","",$selectfontsize);
$selectedext=ereg_replace("[^ \#\*\:\/\@\.\-\_0-9a-zA-Z]","",$selectedext);
$selectedtrunk=ereg_replace("[^ \#\*\:\/\@\.\-\_0-9a-zA-Z]","",$selectedtrunk);
$selectedlocal=ereg_replace("[^ \#\*\:\/\@\.\-\_0-9a-zA-Z]","",$selectedlocal);
$textareaheight=ereg_replace("[^0-9a-zA-Z]","",$textareaheight);
$textareawidth=ereg_replace("[^0-9a-zA-Z]","",$textareawidth);
$field_name=ereg_replace("[^ \#\*\:\/\@\.\-\_0-9a-zA-Z]","",$field_name);
# default optional vars if not set # default optional vars if not set
if (!isset($ADD)) {$ADD="1";} if (!isset($ADD)) {$ADD="1";}
if (!isset($order)) {$order='desc';} if (!isset($order)) {$order='desc';}
@@ -91,8 +110,8 @@ if (!isset($selectfontsize)) {$selectfontsize='10';}
if (!isset($textareaheight)) {$textareaheight='10';} if (!isset($textareaheight)) {$textareaheight='10';}
if (!isset($textareawidth)) {$textareawidth='20';} if (!isset($textareawidth)) {$textareawidth='20';}
$version = '0.0.7'; $version = '0.0.8';
$build = '60421-1155'; $build = '60619-1118';
$StarTtime = date("U"); $StarTtime = date("U");
$NOW_DATE = date("Y-m-d"); $NOW_DATE = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
+11 -2
View File
@@ -54,6 +54,7 @@
# 60105-1124 - Finished Favorites frame and added DB submission # 60105-1124 - Finished Favorites frame and added DB submission
# 60112-1622 - Several formatting changes # 60112-1622 - Several formatting changes
# 60421-1357 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60421-1357 - check GET/POST vars lines with isset to not trigger PHP NOTICES
# 60619-1103 - Added variable filters to close security holes for login form
# #
require("dbconnect.php"); require("dbconnect.php");
@@ -87,8 +88,16 @@ $user_abb = "$user$user$user$user";
while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) while ( (strlen($user_abb) > 4) and ($forever_stop < 200) )
{$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;}
$version = '1.1.11'; $version = '1.1.12';
$build = '60421-1357'; $build = '60619-1103';
### security strip all non-alphanumeric characters out of the variables ###
$DB=ereg_replace("[^0-9a-z]","",$DB);
$phone_login=ereg_replace("[^0-9a-zA-Z]","",$phone_login);
$phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass);
$user=ereg_replace("[^0-9a-zA-Z]","",$user);
$pass=ereg_replace("[^0-9a-zA-Z]","",$pass);
if ($force_logout) if ($force_logout)
{ {
+6 -2
View File
@@ -27,6 +27,7 @@
# 50711-1202 - removed HTTP authentication in favor of user/pass vars # 50711-1202 - removed HTTP authentication in favor of user/pass vars
# 60323-1550 - added option for showing different number dialed in log # 60323-1550 - added option for showing different number dialed in log
# 60421-1401 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60421-1401 - check GET/POST vars lines with isset to not trigger PHP NOTICES
# 60619-1202 - Added variable filters to close security holes for login form
# #
require("dbconnect.php"); require("dbconnect.php");
@@ -47,6 +48,9 @@ if (isset($_GET["exten"])) {$exten=$_GET["exten"];}
if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];}
elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];}
$user=ereg_replace("[^0-9a-zA-Z]","",$user);
$pass=ereg_replace("[^0-9a-zA-Z]","",$pass);
# default optional vars if not set # default optional vars if not set
if (!isset($format)) {$format="text";} if (!isset($format)) {$format="text";}
if (!isset($in_limit)) {$in_limit="100";} if (!isset($in_limit)) {$in_limit="100";}
@@ -54,8 +58,8 @@ if (!isset($out_limit)) {$out_limit="100";}
$number_dialed = 'number_dialed'; $number_dialed = 'number_dialed';
#$number_dialed = 'extension'; #$number_dialed = 'extension';
$version = '0.0.7'; $version = '0.0.8';
$build = '60421-1401'; $build = '60619-1202';
$StarTtime = date("U"); $StarTtime = date("U");
$NOW_DATE = date("Y-m-d"); $NOW_DATE = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
+6 -2
View File
@@ -31,6 +31,7 @@
# 51121-1353 - Altered echo statements for several small PHP speed optimizations # 51121-1353 - Altered echo statements for several small PHP speed optimizations
# 60410-1424 - Added ability to grab calls-being-placed and agent status # 60410-1424 - Added ability to grab calls-being-placed and agent status
# 60421-1405 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60421-1405 - check GET/POST vars lines with isset to not trigger PHP NOTICES
# 60619-1201 - Added variable filters to close security holes for login form
# #
require("dbconnect.php"); require("dbconnect.php");
@@ -59,13 +60,16 @@ if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"
if (isset($_GET["campagentstdisp"])) {$campagentstdisp=$_GET["campagentstdisp"];} if (isset($_GET["campagentstdisp"])) {$campagentstdisp=$_GET["campagentstdisp"];}
elseif (isset($_POST["campagentstdisp"])) {$campagentstdisp=$_POST["campagentstdisp"];} elseif (isset($_POST["campagentstdisp"])) {$campagentstdisp=$_POST["campagentstdisp"];}
$user=ereg_replace("[^0-9a-zA-Z]","",$user);
$pass=ereg_replace("[^0-9a-zA-Z]","",$pass);
# default optional vars if not set # default optional vars if not set
if (!isset($format)) {$format="text";} if (!isset($format)) {$format="text";}
if (!isset($ACTION)) {$ACTION="refresh";} if (!isset($ACTION)) {$ACTION="refresh";}
if (!isset($client)) {$client="agc";} if (!isset($client)) {$client="agc";}
$version = '0.0.8'; $version = '0.0.9';
$build = '60421-1405'; $build = '60619-1201';
$StarTtime = date("U"); $StarTtime = date("U");
$NOW_DATE = date("Y-m-d"); $NOW_DATE = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
+5 -2
View File
@@ -29,6 +29,7 @@
# 50503-1244 - added session_name checking for extra security # 50503-1244 - added session_name checking for extra security
# 50711-1203 - removed HTTP authentication in favor of user/pass vars # 50711-1203 - removed HTTP authentication in favor of user/pass vars
# 60421-1043 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60421-1043 - check GET/POST vars lines with isset to not trigger PHP NOTICES
# 60619-1205 - Added variable filters to close security holes for login form
# #
require("dbconnect.php"); require("dbconnect.php");
@@ -61,12 +62,14 @@ if (isset($_GET["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$
if (isset($_GET["local_web_callerID_URL_enc"])) {$local_web_callerID_URL = rawurldecode($local_web_callerID_URL_enc);} if (isset($_GET["local_web_callerID_URL_enc"])) {$local_web_callerID_URL = rawurldecode($local_web_callerID_URL_enc);}
else {$local_web_callerID_URL = '';} else {$local_web_callerID_URL = '';}
$user=ereg_replace("[^0-9a-zA-Z]","",$user);
$pass=ereg_replace("[^0-9a-zA-Z]","",$pass);
# default optional vars if not set # default optional vars if not set
if (!isset($format)) {$format="text";} if (!isset($format)) {$format="text";}
$version = '0.0.5'; $version = '0.0.6';
$build = '60421-1043'; $build = '60619-1205';
$StarTtime = date("U"); $StarTtime = date("U");
$NOW_DATE = date("Y-m-d"); $NOW_DATE = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
+6 -2
View File
@@ -27,6 +27,7 @@
# 50711-1204 - removed HTTP authentication in favor of user/pass vars # 50711-1204 - removed HTTP authentication in favor of user/pass vars
# 60103-1541 - added favorite extens status display # 60103-1541 - added favorite extens status display
# 60421-1359 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60421-1359 - check GET/POST vars lines with isset to not trigger PHP NOTICES
# 60619-1203 - Added variable filters to close security holes for login form
# #
require("dbconnect.php"); require("dbconnect.php");
@@ -51,11 +52,14 @@ if (isset($_GET["favorites_count"])) {$favorites_count=$_GET["favorites_count
if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["favorites_list"];} if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["favorites_list"];}
elseif (isset($_POST["favorites_list"])) {$favorites_list=$_POST["favorites_list"];} elseif (isset($_POST["favorites_list"])) {$favorites_list=$_POST["favorites_list"];}
$user=ereg_replace("[^0-9a-zA-Z]","",$user);
$pass=ereg_replace("[^0-9a-zA-Z]","",$pass);
# default optional vars if not set # default optional vars if not set
if (!isset($format)) {$format="text";} if (!isset($format)) {$format="text";}
$version = '1.1.11'; $version = '1.1.12';
$build = '60421-1359'; $build = '60619-1203';
$StarTtime = date("U"); $StarTtime = date("U");
$NOW_DATE = date("Y-m-d"); $NOW_DATE = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
+7 -2
View File
@@ -58,6 +58,7 @@
# 51129-1253 - Fixed Hangups of other agents channels in VICIDIAL AD # 51129-1253 - Fixed Hangups of other agents channels in VICIDIAL AD
# 60310-2022 - Fixed NEXTAVAILABLE bug in leave-3way-call redirect function # 60310-2022 - Fixed NEXTAVAILABLE bug in leave-3way-call redirect function
# 60421-1413 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60421-1413 - check GET/POST vars lines with isset to not trigger PHP NOTICES
# 60619-1158 - Added variable filters to close security holes for login form
# #
require("dbconnect.php"); require("dbconnect.php");
@@ -112,13 +113,17 @@ if (isset($_GET["call_server_ip"])) {$call_server_ip=$_GET["call_server_ip"];
if (isset($_GET["CalLCID"])) {$CalLCID=$_GET["CalLCID"];} if (isset($_GET["CalLCID"])) {$CalLCID=$_GET["CalLCID"];}
elseif (isset($_POST["CalLCID"])) {$CalLCID=$_POST["CalLCID"];} elseif (isset($_POST["CalLCID"])) {$CalLCID=$_POST["CalLCID"];}
$user=ereg_replace("[^0-9a-zA-Z]","",$user);
$pass=ereg_replace("[^0-9a-zA-Z]","",$pass);
$secondS = ereg_replace("[^0-9]","",$secondS);
# default optional vars if not set # default optional vars if not set
if (!isset($ACTION)) {$ACTION="Originate";} if (!isset($ACTION)) {$ACTION="Originate";}
if (!isset($format)) {$format="alert";} if (!isset($format)) {$format="alert";}
if (!isset($ext_priority)) {$ext_priority="1";} if (!isset($ext_priority)) {$ext_priority="1";}
$version = '0.0.23'; $version = '0.0.24';
$build = '60421-1413'; $build = '60619-1158';
$StarTtime = date("U"); $StarTtime = date("U");
$NOW_DATE = date("Y-m-d"); $NOW_DATE = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
+6 -2
View File
@@ -21,6 +21,7 @@
# 50524-1515 - First build of script # 50524-1515 - First build of script
# 50711-1208 - removed HTTP authentication in favor of user/pass vars # 50711-1208 - removed HTTP authentication in favor of user/pass vars
# 60421-1111 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60421-1111 - check GET/POST vars lines with isset to not trigger PHP NOTICES
# 60619-1205 - Added variable filters to close security holes for login form
# #
require("dbconnect.php"); require("dbconnect.php");
@@ -41,12 +42,15 @@ if (isset($_GET["exten"])) {$exten=$_GET["exten"];}
if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];}
elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];}
$user=ereg_replace("[^0-9a-zA-Z]","",$user);
$pass=ereg_replace("[^0-9a-zA-Z]","",$pass);
# default optional vars if not set # default optional vars if not set
if (!isset($format)) {$format="text";} if (!isset($format)) {$format="text";}
if (!isset($park_limit)) {$park_limit="1000";} if (!isset($park_limit)) {$park_limit="1000";}
$version = '0.0.3'; $version = '0.0.4';
$build = '60421-1111'; $build = '60619-1205';
$StarTtime = date("U"); $StarTtime = date("U");
$NOW_DATE = date("Y-m-d"); $NOW_DATE = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
+13 -3
View File
@@ -102,10 +102,11 @@
# 60421-1419 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60421-1419 - check GET/POST vars lines with isset to not trigger PHP NOTICES
# 60427-1236 - Fixed closer_choice error for CLOSER campaigns # 60427-1236 - Fixed closer_choice error for CLOSER campaigns
# 60609-1148 - Added ability to check for manual dial numbers in DNC # 60609-1148 - Added ability to check for manual dial numbers in DNC
# 60619-1117 - Added variable filters to close security holes for login form
# #
$version = '0.0.32'; $version = '0.0.33';
$build = '60609-1148'; $build = '60619-1117';
require("dbconnect.php"); require("dbconnect.php");
@@ -228,6 +229,15 @@ if (isset($_GET["recipient"])) {$recipient=$_GET["recipient"];}
elseif (isset($_POST["recipient"])) {$recipient=$_POST["recipient"];} elseif (isset($_POST["recipient"])) {$recipient=$_POST["recipient"];}
if (isset($_GET["callback_id"])) {$callback_id=$_GET["callback_id"];} if (isset($_GET["callback_id"])) {$callback_id=$_GET["callback_id"];}
elseif (isset($_POST["callback_id"])) {$callback_id=$_POST["callback_id"];} elseif (isset($_POST["callback_id"])) {$callback_id=$_POST["callback_id"];}
if (isset($_GET["use_internal_dnc"])) {$use_internal_dnc=$_GET["use_internal_dnc"];}
elseif (isset($_POST["use_internal_dnc"])) {$use_internal_dnc=$_POST["use_internal_dnc"];}
$user=ereg_replace("[^0-9a-zA-Z]","",$user);
$pass=ereg_replace("[^0-9a-zA-Z]","",$pass);
$length_in_sec = ereg_replace("[^0-9]","",$length_in_sec);
$phone_code = ereg_replace("[^0-9]","",$length_in_sec);
$phone_number = ereg_replace("[^0-9]","",$phone_number);
# default optional vars if not set # default optional vars if not set
@@ -1334,7 +1344,7 @@ if ($ACTION == 'updateLEAD')
$comments = eregi_replace("\r",'',$comments); $comments = eregi_replace("\r",'',$comments);
$comments = eregi_replace("\n",'!N',$comments); $comments = eregi_replace("\n",'!N',$comments);
$stmt="UPDATE vicidial_list set vendor_lead_code='$vendor_lead_code', title='$title', first_name='$first_name', middle_initial='$middle_initial', last_name='$last_name', address1='$address1', address2='$address2', address3='$address3', city='$city', state='$state', province='$province', postal_code='$postal_code', country_code='$country_code', gender='$gender', date_of_birth='$date_of_birth', alt_phone='$alt_phone', email='$email', security_phrase='$security_phrase', comments='$comments' where lead_id='$lead_id';"; $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' where lead_id='$lead_id';";
if ($format=='debug') {echo "\n<!-- $stmt -->";} if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
+12 -2
View File
@@ -110,6 +110,7 @@
# 60510-1051 - Added Wrapup timer and wrapup message on wrapup screen after dispo # 60510-1051 - Added Wrapup timer and wrapup message on wrapup screen after dispo
# 60608-1453 - Added CLOSER campaign allowable in-groups limitations # 60608-1453 - Added CLOSER campaign allowable in-groups limitations
# 60609-1123 - Added add-number-to-DNC-list function and manual dial check DNC # 60609-1123 - Added add-number-to-DNC-list function and manual dial check DNC
# 60619-1047 - Added variable filters to close security holes for login form
# #
require("dbconnect.php"); require("dbconnect.php");
@@ -144,10 +145,19 @@ if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];}
$VD_campaign = eregi_replace(" ",'',$VD_campaign); $VD_campaign = eregi_replace(" ",'',$VD_campaign);
} }
### security strip all non-alphanumeric characters out of the variables ###
$DB=ereg_replace("[^0-9a-z]","",$DB);
$phone_login=ereg_replace("[^0-9a-zA-Z]","",$phone_login);
$phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass);
$VD_login=ereg_replace("[^0-9a-zA-Z]","",$VD_login);
$VD_pass=ereg_replace("[^0-9a-zA-Z]","",$VD_pass);
$VD_campaign=ereg_replace("[^0-9a-zA-Z]","",$VD_campaign);
$forever_stop=0; $forever_stop=0;
$version = '1.1.84'; $version = '1.1.85';
$build = '60609-1123'; $build = '60619-1047';
if ($force_logout) if ($force_logout)
{ {
+6 -2
View File
@@ -21,6 +21,7 @@
# 50503-1241 - added session_name checking for extra security # 50503-1241 - added session_name checking for extra security
# 50711-1201 - removed HTTP authentication in favor of user/pass vars # 50711-1201 - removed HTTP authentication in favor of user/pass vars
# 60421-1147 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60421-1147 - check GET/POST vars lines with isset to not trigger PHP NOTICES
# 60619-1204 - Added variable filters to close security holes for login form
# #
require("dbconnect.php"); require("dbconnect.php");
@@ -39,11 +40,14 @@ if (isset($_GET["format"])) {$format=$_GET["format"];}
if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["vmail_box"];} if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["vmail_box"];}
elseif (isset($_POST["vmail_box"])) {$vmail_box=$_POST["vmail_box"];} elseif (isset($_POST["vmail_box"])) {$vmail_box=$_POST["vmail_box"];}
$user=ereg_replace("[^0-9a-zA-Z]","",$user);
$pass=ereg_replace("[^0-9a-zA-Z]","",$pass);
# default optional vars if not set # default optional vars if not set
if (!isset($format)) {$format="text";} if (!isset($format)) {$format="text";}
$version = '0.0.4'; $version = '0.0.5';
$build = '60421-1147'; $build = '60619-1204';
$StarTtime = date("U"); $StarTtime = date("U");
$NOW_DATE = date("Y-m-d"); $NOW_DATE = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
+406
View File
@@ -0,0 +1,406 @@
#!/usr/bin/perl
#
# agi-record_prompts.agi - for recording prompts to GSM file over the phone
# Saves recordings with 8-digit filenames to be played when exten is dialed
#
# ; prompt recording AGI script, ID is 4321
# exten => 8168,1,Answer
# exten => 8168,2,AGI(agi-record_prompts.agi)
# exten => 8168,3,Hangup
#
# ; playback of recorded prompts
# exten => _851XXXXX,1,Answer
# exten => _851XXXXX,2,Playback(${EXTEN})
# exten => _851XXXXX,3,Hangup
#
# GSM Sound Files used:
# - ld_welcome_pin_number
# - ld_invalid_pin_number
# - vm-rec-generic
# - auth-thankyou
# - vm-review
# - vm-msgsaved
# - vm-goodbye
#
$US='_';
use Asterisk::AGI;
$AGI = new Asterisk::AGI;
$|=1;
while(<STDIN>) {
chomp;
last unless length($_);
if ($V)
{
if (/^agi_(\w+)\:\s+(.*)$/)
{
$AGI{$1} = $2;
}
}
if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1;}
}
$unique_id_out = $unique_id;
@NEW_ID = split(/\./, $unique_id_out);
$NEW_ID_DIF = '.0';
$unique_id_out = "$NEW_ID[0]$NEW_ID_DIF$NEW_ID[1]";
$pin='';
$stop_loop=0;
$quit_program=0;
$loop_counter=0;
$REC_id = 85100000;
$REC_next = 0;
if (-e "/prompt_count.txt")
{
open(test, "prompt_count.txt") || die "can't open prompt_count.txt: $!\n";
@test = <test>;
close(test);
$REC_next = ($test[0] + 1);
$REC_id = ($REC_id + $REC_next);
open(test, ">prompt_count.txt") || die "can't open prompt_count.txt: $!\n";
print test "$REC_next";
close(test);
}
else
{
open(test, ">prompt_count.txt") || die "can't open prompt_count.txt: $!\n";
print test "1";
close(test);
$REC_id = ($REC_id + 1);
}
$session_recording = "$REC_id";
print STDERR "Recording ID: $REC_id\n";
&welcome_1;
print STDERR "DONE Exiting...\n";
exit;
##### SUBROUTINES ########################################################
##### steps ########################################################
sub welcome_1
{
##### Play welcome message and capture PIN ########################################################
while ( (length($pin) ne 4) && (!$stop_loop) )
{
&enter_pin_number;
&log_transfer;
$loop_counter++;
if ($loop_counter > 3) {$stop_loop++; $quit_program++;}
print STDERR "\nPIN|$pin|\n";
}
##### Check PIN account in database ########################################################
$rec_count=0;
&lookup_account;
if (!$rec_count)
{
# please enter the pin number followed by the pound key
$AGI->stream_file('ld_invalid_pin_number');
$quit_program++;
}
##### quit program if error ########################################################
if ($quit_program)
{
print STDERR "\nexiting the ping app\n";
print "SET CONTEXT demo\n";
checkresult($result);
print "SET EXTENSION 8158\n";
checkresult($result);
print "SET PRIORITY 3\n";
checkresult($result);
exit;
}
&record_prompts;
}
sub record_prompts
{
$AGI->stream_file('beep');
print STDERR "\nrecord_prompts AGI welcome\n";
$AGI->stream_file('vm-rec-generic');
$AGI->stream_file('beep');
$digit='';
$interrupt_digit='';
$interrupt_digit = $AGI->record_file("$session_recording", 'gsm', '123456789*#', 360000, 1);
print STDERR "interrupt_digit |$interrupt_digit|\n";
$digits_being_entered=1;
$digit_loop_counter=0;
$totalDTMF='';
if ($interrupt_digit > 1)
{
if ($interrupt_digit == 35) {$interrupt_digit='#';}
if ($interrupt_digit == 42) {$interrupt_digit='*';}
if ($interrupt_digit == 48) {$interrupt_digit=0;}
if ($interrupt_digit == 49) {$interrupt_digit=1;}
if ($interrupt_digit == 50) {$interrupt_digit=2;}
if ($interrupt_digit == 51) {$interrupt_digit=3;}
if ($interrupt_digit == 52) {$interrupt_digit=4;}
if ($interrupt_digit == 53) {$interrupt_digit=5;}
if ($interrupt_digit == 54) {$interrupt_digit=6;}
if ($interrupt_digit == 55) {$interrupt_digit=7;}
if ($interrupt_digit == 56) {$interrupt_digit=8;}
if ($interrupt_digit == 57) {$interrupt_digit=9;}
$totalDTMF=$interrupt_digit;
$digit_loop_counter++;
}
$AGI->stream_file('beep');
if (length($totalDTMF) > 0) {print STDERR "digit |$digit| TotalDTMF |$totalDTMF|\n";}
&verify_recording;
}
sub verify_recording
{
$digit='';
$interrupt_digit='';
$interrupt_digit = $AGI->stream_file('vm-review','123456789');
print STDERR "interrupt_digit |$interrupt_digit|\n";
$digits_being_entered=1;
$digit_loop_counter=0;
$totalDTMF='';
if ($interrupt_digit > 1)
{
if ($interrupt_digit == 35) {$interrupt_digit='#';}
if ($interrupt_digit == 42) {$interrupt_digit='*';}
if ($interrupt_digit == 48) {$interrupt_digit=0;}
if ($interrupt_digit == 49) {$interrupt_digit=1;}
if ($interrupt_digit == 50) {$interrupt_digit=2;}
if ($interrupt_digit == 51) {$interrupt_digit=3;}
if ($interrupt_digit == 52) {$interrupt_digit=4;}
if ($interrupt_digit == 53) {$interrupt_digit=5;}
if ($interrupt_digit == 54) {$interrupt_digit=6;}
if ($interrupt_digit == 55) {$interrupt_digit=7;}
if ($interrupt_digit == 56) {$interrupt_digit=8;}
if ($interrupt_digit == 57) {$interrupt_digit=9;}
$totalDTMF=$interrupt_digit;
$digit_loop_counter++;
}
while ($digit_loop_counter < 1)
{
$digit = chr($AGI->wait_for_digit('2000000')); # wait 0.2 seconds for input or until the pound key is pressed
if ($digit =~ /\d/)
{
$totalDTMF = "$totalDTMF$digit";
print STDERR "digit |$digit| TotalDTMF |$totalDTMF|\n";
# $AGI->say_digits("$digit");
undef $digit;
}
else
{
$digit_loop_counter=1;
}
$digit_loop_counter++;
}
$totalDTMF =~ s/\D//gi;
$pin = $totalDTMF;
if (length($pin)< 1)
{
&verify_recording;
}
else
{
if ($pin == '1')
{
$AGI->stream_file('auth-thankyou');
$AGI->say_digits("$REC_id");
$AGI->stream_file('beep');
$AGI->say_digits("$REC_id");
$AGI->stream_file('vm-goodbye');
exit;
}
if ($pin == '2')
{
$AGI->stream_file("$session_recording");
&verify_recording;
}
if ($pin == '3')
{
&record_prompts;
}
}
}
##### SUBROUTINES PROCESSES ########################################################
sub log_transfer
{
}
sub lookup_account
{
if ($pin eq '4321')
{
$rec_count++;
}
}
sub get_time_now #get the current date and time and epoch for logging call lengths and datetimes
{
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$year = ($year + 1900);
$mon++;
if ($mon < 10) {$mon = "0$mon";}
if ($mday < 10) {$mday = "0$mday";}
if ($hour < 10) {$Fhour = "0$hour";}
if ($min < 10) {$min = "0$min";}
if ($sec < 10) {$sec = "0$sec";}
$now_date_epoch = time();
$now_date = "$year-$mon-$mday $hour:$min:$sec";
}
sub enter_pin_number
{
# please enter the pin number followed by the pound key
$interrupt_digit='';
$interrupt_digit = $AGI->stream_file('ld_welcome_pin_number','123456789');
print STDERR "interrupt_digit |$interrupt_digit|\n";
$digits_being_entered=1;
$totalDTMF='';
if ($interrupt_digit > 0)
{
if ($interrupt_digit == 48) {$interrupt_digit=0;}
if ($interrupt_digit == 49) {$interrupt_digit=1;}
if ($interrupt_digit == 50) {$interrupt_digit=2;}
if ($interrupt_digit == 51) {$interrupt_digit=3;}
if ($interrupt_digit == 52) {$interrupt_digit=4;}
if ($interrupt_digit == 53) {$interrupt_digit=5;}
if ($interrupt_digit == 54) {$interrupt_digit=6;}
if ($interrupt_digit == 55) {$interrupt_digit=7;}
if ($interrupt_digit == 56) {$interrupt_digit=8;}
if ($interrupt_digit == 57) {$interrupt_digit=9;}
$totalDTMF=$interrupt_digit;
}
$digit_loop_counter=0;
while ( ($digits_being_entered) && ($digit_loop_counter < 20) )
{
$digit = chr($AGI->wait_for_digit('90000')); # wait 90 seconds for input or until the pound key is pressed
if ($digit =~ /\d/)
{
$totalDTMF = "$totalDTMF$digit";
print STDERR "digit |$digit| TotalDTMF |$totalDTMF|\n";
# $AGI->say_digits("$digit");
undef $digit;
}
else
{
$digits_being_entered=0;
}
$digit_loop_counter++;
}
$totalDTMF =~ s/\D//gi;
$pin = $totalDTMF;
if ($totalDTMF) {print STDERR "digit |$digit| TotalDTMF |$totalDTMF|\n";}
}
sub checkresult {
my ($res) = @_;
my $retval;
$tests++;
chomp $res;
if ($res =~ /^200/) {
$res =~ /result=(-?\d+)/;
if (!length($1)) {
print STDERR "FAIL ($res)\n";
$fail++;
} else {
print STDERR "PASS ($1)\n";
$pass++;
}
} else {
print STDERR "FAIL (unexpected result '$res')\n";
$fail++;
}
}
+35 -13
View File
@@ -3,7 +3,11 @@
# #
# Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 # Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
# #
# CHANGES
# 60421-1450 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60421-1450 - check GET/POST vars lines with isset to not trigger PHP NOTICES
# 60620-1322 - Added variable filtering to eliminate SQL injection attack threat
# - Added required user/pass to gain access to this page
#
require("dbconnect.php"); require("dbconnect.php");
@@ -21,13 +25,31 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_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;";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$auth=$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;
}
$NOW_DATE = date("Y-m-d"); $NOW_DATE = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s"); $NOW_TIME = date("Y-m-d H:i:s");
$STARTtime = date("U"); $STARTtime = date("U");
if (!isset($query_date)) {$query_date = $NOW_DATE;} if (!isset($query_date)) {$query_date = $NOW_DATE;}
if (!isset($server_ip)) {$server_ip = '10.10.11.20';} if (!isset($server_ip)) {$server_ip = '10.10.11.20';}
$stmt="select extension,full_number,inbound_name from inbound_numbers where server_ip='$server_ip';"; $stmt="select extension,full_number,inbound_name from inbound_numbers where server_ip='" . mysql_real_escape_string($server_ip) . "';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$inbound_to_print = mysql_num_rows($rslt); $inbound_to_print = mysql_num_rows($rslt);
@@ -90,10 +112,10 @@ echo "ASTERISK: Inbound Calls Stats $NOW_TIME\n";
echo "\n"; echo "\n";
echo "---------- TOTALS\n"; echo "---------- TOTALS\n";
$extenSQL = "and extension='$group'"; $extenSQL = "and extension='" . mysql_real_escape_string($group) . "'";
if (eregi("\*",$group)) if (eregi("\*",$group))
{$extenSQL = "and extension LIKE \"%$group\"";} {$extenSQL = "and extension LIKE \"%$group\"";}
$stmt="select count(*),sum(length_in_sec) from call_log where start_time >= '$query_date 00:00:01' and start_time <= '$query_date 23:59:59' and server_ip='$server_ip' $extenSQL ;"; $stmt="select count(*),sum(length_in_sec) from call_log where start_time >= '" . mysql_real_escape_string($query_date) . " 00:00:01' and start_time <= '" . mysql_real_escape_string($query_date) . " 23:59:59' and server_ip='" . mysql_real_escape_string($server_ip) . "' $extenSQL ;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -109,7 +131,7 @@ echo "Average Call Length(seconds) for all Calls: $average_hold_seconds\n";
echo "\n"; echo "\n";
echo "---------- DROPS\n"; echo "---------- DROPS\n";
$stmt="select count(*),sum(length_in_sec) from call_log where start_time >= '$query_date 00:00:01' and start_time <= '$query_date 23:59:59' and server_ip='$server_ip' $extenSQL and (length_in_sec <= 10 or length_in_sec is null);"; $stmt="select count(*),sum(length_in_sec) from call_log where start_time >= '" . mysql_real_escape_string($query_date) . " 00:00:01' and start_time <= '" . mysql_real_escape_string($query_date) . " 23:59:59' and server_ip='" . mysql_real_escape_string($server_ip) . "' $extenSQL and (length_in_sec <= 10 or length_in_sec is null);";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -138,7 +160,7 @@ echo "+----------------------+----------------------+--------+------------------
echo "| CALLERID | CALLERIDNAME | LENGTH | DATE TIME |\n"; echo "| CALLERID | CALLERIDNAME | LENGTH | DATE TIME |\n";
echo "+----------------------+----------------------+--------+---------------------+\n"; echo "+----------------------+----------------------+--------+---------------------+\n";
$stmt="select number_dialed,caller_code,length_in_sec,start_time from call_log where start_time >= '$query_date 00:00:01' and start_time <= '$query_date 23:59:59' and server_ip='$server_ip' $extenSQL ;"; $stmt="select number_dialed,caller_code,length_in_sec,start_time from call_log where start_time >= '" . mysql_real_escape_string($query_date) . " 00:00:01' and start_time <= '" . mysql_real_escape_string($query_date) . " 23:59:59' and server_ip='" . mysql_real_escape_string($server_ip) . "' $extenSQL ;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$users_to_print = mysql_num_rows($rslt); $users_to_print = mysql_num_rows($rslt);
@@ -186,14 +208,14 @@ if ($output == 'FULL')
$h=0; $h=0;
while ($i <= 96) while ($i <= 96)
{ {
$stmt="select count(*) from call_log where start_time >= '$query_date $h:00:00' and start_time <= '$query_date $h:14:59' and server_ip='$server_ip' $extenSQL ;"; $stmt="select count(*) from call_log where start_time >= '" . mysql_real_escape_string($query_date) . " $h:00:00' and start_time <= '" . mysql_real_escape_string($query_date) . " $h:14:59' and server_ip='" . mysql_real_escape_string($server_ip) . "' $extenSQL ;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$hour_count[$i] = $row[0]; $hour_count[$i] = $row[0];
if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];} if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
if ($hour_count[$i] > 0) {$last_full_record = $i;} if ($hour_count[$i] > 0) {$last_full_record = $i;}
$stmt="select count(*) from call_log where start_time >= '$query_date $h:00:00' and start_time <= '$query_date $h:14:59' and server_ip='$server_ip' $extenSQL and (length_in_sec <= 10 or length_in_sec is null);"; $stmt="select count(*) from call_log where start_time >= '" . mysql_real_escape_string($query_date) . " $h:00:00' and start_time <= '" . mysql_real_escape_string($query_date) . " $h:14:59' and server_ip='" . mysql_real_escape_string($server_ip) . "' $extenSQL and (length_in_sec <= 10 or length_in_sec is null);";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -201,42 +223,42 @@ if ($output == 'FULL')
$i++; $i++;
$stmt="select count(*) from call_log where start_time >= '$query_date $h:15:00' and start_time <= '$query_date $h:29:59' and server_ip='$server_ip' $extenSQL ;"; $stmt="select count(*) from call_log where start_time >= '" . mysql_real_escape_string($query_date) . " $h:15:00' and start_time <= '" . mysql_real_escape_string($query_date) . " $h:29:59' and server_ip='" . mysql_real_escape_string($server_ip) . "' $extenSQL ;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$hour_count[$i] = $row[0]; $hour_count[$i] = $row[0];
if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];} if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
if ($hour_count[$i] > 0) {$last_full_record = $i;} if ($hour_count[$i] > 0) {$last_full_record = $i;}
$stmt="select count(*) from call_log where start_time >= '$query_date $h:15:00' and start_time <= '$query_date $h:29:59' and server_ip='$server_ip' $extenSQL and (length_in_sec <= 10 or length_in_sec is null);"; $stmt="select count(*) from call_log where start_time >= '" . mysql_real_escape_string($query_date) . " $h:15:00' and start_time <= '" . mysql_real_escape_string($query_date) . " $h:29:59' and server_ip='" . mysql_real_escape_string($server_ip) . "' $extenSQL and (length_in_sec <= 10 or length_in_sec is null);";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$drop_count[$i] = $row[0]; $drop_count[$i] = $row[0];
$i++; $i++;
$stmt="select count(*) from call_log where start_time >= '$query_date $h:30:00' and start_time <= '$query_date $h:44:59' and server_ip='$server_ip' $extenSQL ;"; $stmt="select count(*) from call_log where start_time >= '" . mysql_real_escape_string($query_date) . " $h:30:00' and start_time <= '" . mysql_real_escape_string($query_date) . " $h:44:59' and server_ip='" . mysql_real_escape_string($server_ip) . "' $extenSQL ;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$hour_count[$i] = $row[0]; $hour_count[$i] = $row[0];
if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];} if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
if ($hour_count[$i] > 0) {$last_full_record = $i;} if ($hour_count[$i] > 0) {$last_full_record = $i;}
$stmt="select count(*) from call_log where start_time >= '$query_date $h:30:00' and start_time <= '$query_date $h:44:59' and server_ip='$server_ip' $extenSQL and (length_in_sec <= 10 or length_in_sec is null);"; $stmt="select count(*) from call_log where start_time >= '" . mysql_real_escape_string($query_date) . " $h:30:00' and start_time <= '" . mysql_real_escape_string($query_date) . " $h:44:59' and server_ip='" . mysql_real_escape_string($server_ip) . "' $extenSQL and (length_in_sec <= 10 or length_in_sec is null);";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$drop_count[$i] = $row[0]; $drop_count[$i] = $row[0];
$i++; $i++;
$stmt="select count(*) from call_log where start_time >= '$query_date $h:45:00' and start_time <= '$query_date $h:59:59' and server_ip='$server_ip' $extenSQL ;"; $stmt="select count(*) from call_log where start_time >= '" . mysql_real_escape_string($query_date) . " $h:45:00' and start_time <= '" . mysql_real_escape_string($query_date) . " $h:59:59' and server_ip='" . mysql_real_escape_string($server_ip) . "' $extenSQL ;";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
$hour_count[$i] = $row[0]; $hour_count[$i] = $row[0];
if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];} if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
if ($hour_count[$i] > 0) {$last_full_record = $i;} if ($hour_count[$i] > 0) {$last_full_record = $i;}
$stmt="select count(*) from call_log where start_time >= '$query_date $h:45:00' and start_time <= '$query_date $h:59:59' and server_ip='$server_ip' $extenSQL and (length_in_sec <= 10 or length_in_sec is null);"; $stmt="select count(*) from call_log where start_time >= '" . mysql_real_escape_string($query_date) . " $h:45:00' and start_time <= '" . mysql_real_escape_string($query_date) . " $h:59:59' and server_ip='" . mysql_real_escape_string($server_ip) . "' $extenSQL and (length_in_sec <= 10 or length_in_sec is null);";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
+108 -7
View File
@@ -5,6 +5,7 @@
# #
# AST GUI database administration # AST GUI database administration
# #
# CHANGES
# 50913-1118 - Added outbound_cid for web-client calls # 50913-1118 - Added outbound_cid for web-client calls
# 50926-1356 - Modified to allow for language translation # 50926-1356 - Modified to allow for language translation
# 50926-1613 - Added WeBRooTWritablE write controls # 50926-1613 - Added WeBRooTWritablE write controls
@@ -13,10 +14,11 @@
# 51213-1650 - Added option to delete phones if allowed by vicidial_users # 51213-1650 - Added option to delete phones if allowed by vicidial_users
# 60421-1430 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60421-1430 - check GET/POST vars lines with isset to not trigger PHP NOTICES
# 60427-1137 - Fixed phone search bug # 60427-1137 - Fixed phone search bug
# 60620-1243 - Added variable filtering to eliminate SQL injection attack threat
# #
$version = '1.1.10-3'; $version = '1.1.12';
$build = '60427-1137'; $build = '60620-1243';
require("dbconnect.php"); require("dbconnect.php");
@@ -31,10 +33,6 @@ if (isset($_GET["pass"])) {$pass=$_GET["pass"];}
elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];}
if (isset($_GET["full_name"])) {$full_name=$_GET["full_name"];} if (isset($_GET["full_name"])) {$full_name=$_GET["full_name"];}
elseif (isset($_POST["full_name"])) {$full_name=$_POST["full_name"];} elseif (isset($_POST["full_name"])) {$full_name=$_POST["full_name"];}
if (isset($_GET["user_level"])) {$user_level=$_GET["user_level"];}
elseif (isset($_POST["user_level"])) {$user_level=$_POST["user_level"];}
if (isset($_GET["group"])) {$group=$_GET["group"];}
elseif (isset($_POST["group"])) {$group=$_POST["group"];}
if (isset($_GET["status"])) {$status=$_GET["status"];} if (isset($_GET["status"])) {$status=$_GET["status"];}
elseif (isset($_POST["status"])) {$status=$_POST["status"];} elseif (isset($_POST["status"])) {$status=$_POST["status"];}
if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];}
@@ -200,6 +198,109 @@ if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
if (isset($_GET["CoNfIrM"])) {$CoNfIrM=$_GET["CoNfIrM"];} if (isset($_GET["CoNfIrM"])) {$CoNfIrM=$_GET["CoNfIrM"];}
elseif (isset($_POST["CoNfIrM"])) {$CoNfIrM=$_POST["CoNfIrM"];} elseif (isset($_POST["CoNfIrM"])) {$CoNfIrM=$_POST["CoNfIrM"];}
##### BEGIN VARIABLE FILTERING FOR SECURITY #####
### DIGITS and Dots
$phone_ip = ereg_replace("[^\.0-9]","",$phone_ip);
$server_ip = ereg_replace("[^\.0-9]","",$server_ip);
$old_server_ip = ereg_replace("[^\.0-9]","",$old_server_ip);
$computer_ip = ereg_replace("[^\.0-9]","",$computer_ip);
### Y or N ONLY ###
$active = ereg_replace("[^NY]","",$active);
### DIGITS ONLY ###
$dialplan_number = ereg_replace("[^0-9]","",$dialplan_number);
$voicemail_id = ereg_replace("[^0-9]","",$voicemail_id);
$outbound_cid = ereg_replace("[^0-9]","",$outbound_cid);
$VICIDIAL_park_on_extension = ereg_replace("[^0-9]","",$VICIDIAL_park_on_extension);
$park_on_extension = ereg_replace("[^0-9]","",$park_on_extension);
$conf_on_extension = ereg_replace("[^0-9]","",$conf_on_extension);
$conf_exten = ereg_replace("[^0-9]","",$conf_exten);
$old_conf_exten = ereg_replace("[^0-9]","",$old_conf_exten);
$voicemail_exten = ereg_replace("[^0-9]","",$voicemail_exten);
$voicemail_dump_exten = ereg_replace("[^0-9]","",$voicemail_dump_exten);
$recording_exten = ereg_replace("[^0-9]","",$recording_exten);
$monitor_prefix = ereg_replace("[^0-9]","",$monitor_prefix);
$answer_transfer_agent = ereg_replace("[^0-9]","",$answer_transfer_agent);
$DBX_port = ereg_replace("[^0-9]","",$DBX_port);
$DBY_port = ereg_replace("[^0-9]","",$DBY_port);
$telnet_port = ereg_replace("[^0-9]","",$telnet_port);
$max_vicidial_trunks = ereg_replace("[^0-9]","",$max_vicidial_trunks);
$auto_dial_next_number = ereg_replace("[^0-9]","",$auto_dial_next_number);
$VDstop_rec_after_each_call = ereg_replace("[^0-9]","",$VDstop_rec_after_each_call);
$enable_persistant_mysql = ereg_replace("[^0-9]","",$enable_persistant_mysql);
$enable_fast_refresh = ereg_replace("[^0-9]","",$enable_fast_refresh);
$user_switching_enabled = ereg_replace("[^0-9]","",$user_switching_enabled);
$updater_check_enabled = ereg_replace("[^0-9]","",$updater_check_enabled);
$QUEUE_ACTION_enabled = ereg_replace("[^0-9]","",$QUEUE_ACTION_enabled);
$conferencing_enabled = ereg_replace("[^0-9]","",$conferencing_enabled);
$voicemail_button_enabled = ereg_replace("[^0-9]","",$voicemail_button_enabled);
$CallerID_popup_enabled = ereg_replace("[^0-9]","",$CallerID_popup_enabled);
$call_parking_enabled = ereg_replace("[^0-9]","",$call_parking_enabled);
$AGI_call_logging_enabled = ereg_replace("[^0-9]","",$AGI_call_logging_enabled);
$AFLogging_enabled = ereg_replace("[^0-9]","",$AFLogging_enabled);
$admin_monitor_enabled = ereg_replace("[^0-9]","",$admin_monitor_enabled);
$admin_hijack_enabled = ereg_replace("[^0-9]","",$admin_hijack_enabled);
$admin_hangup_enabled = ereg_replace("[^0-9]","",$admin_hangup_enabled);
$fast_refresh_rate = ereg_replace("[^0-9]","",$fast_refresh_rate);
$ADD = ereg_replace("[^0-9]","",$ADD);
### ALPHA-NUMERIC and underscore and dash and slash and at and dot
$extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$extension);
$old_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$old_extension);
$install_directory = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$install_directory);
$client_browser = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$client_browser);
$dtmf_send_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$dtmf_send_extension);
$call_out_number_group = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$call_out_number_group);
$telnet_host = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$telnet_host);
$DBX_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBX_server);
$DBY_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBY_server);
### ALPHA-NUMERIC (and underscore and dash)
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
$login = ereg_replace("[^-\_0-9a-zA-Z]","",$login);
$user = ereg_replace("[^-\_0-9a-zA-Z]","",$user);
$pass = ereg_replace("[^-\_0-9a-zA-Z]","",$pass);
$status = ereg_replace("[^-\_0-9a-zA-Z]","",$status);
$protocol = ereg_replace("[^-\_0-9a-zA-Z]","",$protocol);
$ASTmgrUSERNAMEupdate = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrUSERNAMEupdate);
$ASTmgrUSERNAMEsend = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrUSERNAMEsend);
$ASTmgrUSERNAMElisten = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrUSERNAMElisten);
$ASTmgrUSERNAME = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrUSERNAME);
$ASTmgrSECRET = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrSECRET);
$login_user = ereg_replace("[^-\_0-9a-zA-Z]","",$login_user);
$login_pass = ereg_replace("[^-\_0-9a-zA-Z]","",$login_pass);
$login_campaign = ereg_replace("[^-\_0-9a-zA-Z]","",$login_campaign);
$DBX_user = ereg_replace("[^-\_0-9a-zA-Z]","",$DBX_user);
$DBY_user = ereg_replace("[^-\_0-9a-zA-Z]","",$DBY_user);
$DBX_pass = ereg_replace("[^-\_0-9a-zA-Z]","",$DBX_pass);
$DBY_pass = ereg_replace("[^-\_0-9a-zA-Z]","",$DBY_pass);
$DBX_database = ereg_replace("[^-\_0-9a-zA-Z]","",$DBX_database);
$DBY_database = ereg_replace("[^-\_0-9a-zA-Z]","",$DBY_database);
$VICIDIAL_park_on_filename = ereg_replace("[^-\_0-9a-zA-Z]","",$VICIDIAL_park_on_filename);
$server_id = ereg_replace("[^-\_0-9a-zA-Z]","",$server_id);
$old_server_id = ereg_replace("[^-\_0-9a-zA-Z]","",$old_server_id);
$ext_context = ereg_replace("[^-\_0-9a-zA-Z]","",$ext_context);
$CoNfIrM = ereg_replace("[^-\_0-9a-zA-Z]","",$CoNfIrM);
### ALPHA-NUMERIC and spaces dots, commas, dashes, underscores
$phone_type = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$phone_type);
$full_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$full_name);
$fullname = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$fullname);
$company = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$company);
$picture = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$picture);
$local_gmt = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$local_gmt);
$server_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$server_description);
$asterisk_version = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$asterisk_version);
### VARIABLES TO BE mysql_real_escape_string ###
# $VICIDIAL_web_URL =
# $local_web_callerID_URL =
##### END VARIABLE FILTERING FOR SECURITY #####
if ($force_logout) if ($force_logout)
{ {
if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) )
@@ -1284,7 +1385,7 @@ if ($ADD==4)
{ {
echo "<br>PHONE MODIFIED: $extension\n"; echo "<br>PHONE MODIFIED: $extension\n";
$stmt="UPDATE phones set extension='$extension', dialplan_number='$dialplan_number', voicemail_id='$voicemail_id', phone_ip='$phone_ip', computer_ip='$computer_ip', server_ip='$server_ip', login='$login', pass='$pass', status='$status', active='$active', phone_type='$phone_type', fullname='$fullname', company='$company', picture='$picture', protocol='$protocol', local_gmt='$local_gmt', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', login_user='$login_user', login_pass='$login_pass', login_campaign='$login_campaign', park_on_extension='$park_on_extension', conf_on_extension='$conf_on_extension', VICIDIAL_park_on_extension='$VICIDIAL_park_on_extension', VICIDIAL_park_on_filename='$VICIDIAL_park_on_filename', monitor_prefix='$monitor_prefix', recording_exten='$recording_exten', voicemail_exten='$voicemail_exten', voicemail_dump_exten='$voicemail_dump_exten', ext_context='$ext_context', dtmf_send_extension='$dtmf_send_extension', call_out_number_group='$call_out_number_group', client_browser='$client_browser', install_directory='$install_directory', local_web_callerID_URL='$local_web_callerID_URL', VICIDIAL_web_URL='$VICIDIAL_web_URL', AGI_call_logging_enabled='$AGI_call_logging_enabled', user_switching_enabled='$user_switching_enabled', conferencing_enabled='$conferencing_enabled', admin_hangup_enabled='$admin_hangup_enabled', admin_hijack_enabled='$admin_hijack_enabled', admin_monitor_enabled='$admin_monitor_enabled', call_parking_enabled='$call_parking_enabled', updater_check_enabled='$updater_check_enabled', AFLogging_enabled='$AFLogging_enabled', QUEUE_ACTION_enabled='$QUEUE_ACTION_enabled', CallerID_popup_enabled='$CallerID_popup_enabled', voicemail_button_enabled='$voicemail_button_enabled', enable_fast_refresh='$enable_fast_refresh', fast_refresh_rate='$fast_refresh_rate', enable_persistant_mysql='$enable_persistant_mysql', auto_dial_next_number='$auto_dial_next_number', VDstop_rec_after_each_call='$VDstop_rec_after_each_call', DBX_server='$DBX_server', DBX_database='$DBX_database', DBX_user='$DBX_user', DBX_pass='$DBX_pass', DBX_port='$DBX_port', DBY_server='$DBY_server', DBY_database='$DBY_database', DBY_user='$DBY_user', DBY_pass='$DBY_pass', DBY_port='$DBY_port', outbound_cid='$outbound_cid' where extension='$old_extension' and server_ip='$old_server_ip';"; $stmt="UPDATE phones set extension='$extension', dialplan_number='$dialplan_number', voicemail_id='$voicemail_id', phone_ip='$phone_ip', computer_ip='$computer_ip', server_ip='$server_ip', login='$login', pass='$pass', status='$status', active='$active', phone_type='$phone_type', fullname='$fullname', company='$company', picture='$picture', protocol='$protocol', local_gmt='$local_gmt', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', login_user='$login_user', login_pass='$login_pass', login_campaign='$login_campaign', park_on_extension='$park_on_extension', conf_on_extension='$conf_on_extension', VICIDIAL_park_on_extension='$VICIDIAL_park_on_extension', VICIDIAL_park_on_filename='$VICIDIAL_park_on_filename', monitor_prefix='$monitor_prefix', recording_exten='$recording_exten', voicemail_exten='$voicemail_exten', voicemail_dump_exten='$voicemail_dump_exten', ext_context='$ext_context', dtmf_send_extension='$dtmf_send_extension', call_out_number_group='$call_out_number_group', client_browser='$client_browser', install_directory='$install_directory', local_web_callerID_URL='" . mysql_real_escape_string($local_web_callerID_URL) . "', VICIDIAL_web_URL='" . mysql_real_escape_string($VICIDIAL_web_URL) . "', AGI_call_logging_enabled='$AGI_call_logging_enabled', user_switching_enabled='$user_switching_enabled', conferencing_enabled='$conferencing_enabled', admin_hangup_enabled='$admin_hangup_enabled', admin_hijack_enabled='$admin_hijack_enabled', admin_monitor_enabled='$admin_monitor_enabled', call_parking_enabled='$call_parking_enabled', updater_check_enabled='$updater_check_enabled', AFLogging_enabled='$AFLogging_enabled', QUEUE_ACTION_enabled='$QUEUE_ACTION_enabled', CallerID_popup_enabled='$CallerID_popup_enabled', voicemail_button_enabled='$voicemail_button_enabled', enable_fast_refresh='$enable_fast_refresh', fast_refresh_rate='$fast_refresh_rate', enable_persistant_mysql='$enable_persistant_mysql', auto_dial_next_number='$auto_dial_next_number', VDstop_rec_after_each_call='$VDstop_rec_after_each_call', DBX_server='$DBX_server', DBX_database='$DBX_database', DBX_user='$DBX_user', DBX_pass='$DBX_pass', DBX_port='$DBX_port', DBY_server='$DBY_server', DBY_database='$DBY_database', DBY_user='$DBY_user', DBY_pass='$DBY_pass', DBY_port='$DBY_port', outbound_cid='$outbound_cid' where extension='$old_extension' and server_ip='$old_server_ip';";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
} }
} }
+10 -3
View File
@@ -4,6 +4,11 @@
### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 ### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
### ###
# this is the inbound popup of a specific call that grabs the call and allows you to go and fetch info on that caller in the local CRM system. # this is the inbound popup of a specific call that grabs the call and allows you to go and fetch info on that caller in the local CRM system.
#
# changes:
# 60620-1329 - Added variable filtering to eliminate SQL injection attack threat
# - Added required user/pass to gain access to this page
#
require("dbconnect.php"); require("dbconnect.php");
@@ -77,6 +82,8 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
$STARTtime = date("U"); $STARTtime = date("U");
$TODAY = date("Y-m-d"); $TODAY = date("Y-m-d");
@@ -147,7 +154,7 @@ $browser = getenv("HTTP_USER_AGENT");
<? <?
$stmt="SELECT count(*) from parked_channels where server_ip='$user_server_ip' and parked_time='$parked_time' and channel='$channel'"; $stmt="SELECT count(*) from parked_channels where server_ip='$user_server_ip' and parked_time='" . mysql_real_escape_string($parked_time) . "' and channel='" . mysql_real_escape_string($channel) . "'";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -156,14 +163,14 @@ $parked_count = $row[0];
if ($parked_count > 0) if ($parked_count > 0)
{ {
$stmt="DELETE from parked_channels where server_ip='$user_server_ip' and parked_time='$parked_time' and channel='$channel' LIMIT 1"; $stmt="DELETE from parked_channels where server_ip='$user_server_ip' and parked_time='" . mysql_real_escape_string($parked_time) . "' and channel='" . mysql_real_escape_string($channel) . "' LIMIT 1";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$DTqueryCID = "RR$FILE_datetime$PHP_AUTH_USER"; $DTqueryCID = "RR$FILE_datetime$PHP_AUTH_USER";
### insert a NEW record to the vicidial_manager table to be processed ### insert a NEW record to the vicidial_manager table to be processed
$stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$user_server_ip','','Redirect','$DTqueryCID','Exten: $dialplan_number','Channel: $channel','Context: $ext_context','Priority: 1','Callerid: $DTqueryCID','','','','','')"; $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$user_server_ip','','Redirect','$DTqueryCID','Exten: $dialplan_number','Channel: " . mysql_real_escape_string($channel) . "','Context: $ext_context','Priority: 1','Callerid: $DTqueryCID','','','','','')";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
+11 -3
View File
@@ -3,6 +3,11 @@
# #
# Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 # Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
# #
#
# changes:
# 60620-1333 - Added variable filtering to eliminate SQL injection attack threat
# - Added required user/pass to gain access to this page
#
require("dbconnect.php"); require("dbconnect.php");
@@ -30,6 +35,9 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];}
elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
$STARTtime = date("U"); $STARTtime = date("U");
$TODAY = date("Y-m-d"); $TODAY = date("Y-m-d");
$admin_page = './admin.php'; $admin_page = './admin.php';
@@ -113,7 +121,7 @@ echo "</B></TD></TR>\n";
echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n";
$stmt="SELECT count(*),channel_group, sum(length_in_sec) from call_log where extension='$extension' and server_ip='$server_ip' and start_time >= '$begin_date 0:00:01' and start_time <= '$end_date 23:59:59' group by channel_group order by channel_group"; $stmt="SELECT count(*),channel_group, sum(length_in_sec) from call_log where extension='" . mysql_real_escape_string($extension) . "' and server_ip='" . mysql_real_escape_string($server_ip) . "' and start_time >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and start_time <= '" . mysql_real_escape_string($end_date) . " 23:59:59' group by channel_group order by channel_group";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$statuses_to_print = mysql_num_rows($rslt); $statuses_to_print = mysql_num_rows($rslt);
# echo "|$stmt|\n"; # echo "|$stmt|\n";
@@ -152,7 +160,7 @@ echo "<tr><td><font size=2>CHANNEL GROUP </td><td align=right><font size=2>COUNT
$o++; $o++;
} }
$stmt="SELECT sum(length_in_sec) from call_log where extension='$extension' and server_ip='$server_ip' and start_time >= '$begin_date 0:00:01' and start_time <= '$end_date 23:59:59'"; $stmt="SELECT sum(length_in_sec) from call_log where extension='" . mysql_real_escape_string($extension) . "' and server_ip='" . mysql_real_escape_string($server_ip) . "' and start_time >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and start_time <= '" . mysql_real_escape_string($end_date) . " 23:59:59'";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$counts_to_print = mysql_num_rows($rslt); $counts_to_print = mysql_num_rows($rslt);
$row=mysql_fetch_row($rslt); $row=mysql_fetch_row($rslt);
@@ -176,7 +184,7 @@ echo "<B>LAST 1000 CALLS FOR DATE RANGE:</B>\n";
echo "<TABLE width=400 cellspacing=0 cellpadding=1>\n"; echo "<TABLE width=400 cellspacing=0 cellpadding=1>\n";
echo "<tr><td><font size=2>NUMBER </td><td><font size=2>CHANNEL GROUP </td><td align=right><font size=2> DATE</td><td align=right><font size=2> LENGTH(MIN.)</td></tr>\n"; echo "<tr><td><font size=2>NUMBER </td><td><font size=2>CHANNEL GROUP </td><td align=right><font size=2> DATE</td><td align=right><font size=2> LENGTH(MIN.)</td></tr>\n";
$stmt="SELECT number_dialed,channel_group,start_time,length_in_min from call_log where extension='$extension' and server_ip='$server_ip' and start_time >= '$begin_date 0:00:01' and start_time <= '$end_date 23:59:59' LIMIT 1000"; $stmt="SELECT number_dialed,channel_group,start_time,length_in_min from call_log where extension='" . mysql_real_escape_string($extension) . "' and server_ip='" . mysql_real_escape_string($server_ip) . "' and start_time >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and start_time <= '" . mysql_real_escape_string($end_date) . " 23:59:59' LIMIT 1000";
$rslt=mysql_query($stmt, $link); $rslt=mysql_query($stmt, $link);
$events_to_print = mysql_num_rows($rslt); $events_to_print = mysql_num_rows($rslt);
# echo "|$stmt|\n"; # echo "|$stmt|\n";
+7
View File
@@ -4,6 +4,11 @@
### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 ### Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
### ###
# the purpose of this script and webpage is to allow for remote or local users of the system to log in and grab phone calls that are coming inbound into the Asterisk server and being put in the parked_channels table while they hear a soundfile for a limited amount of time before being forwarded on to either a set extension or a voicemail box. This gives remote or local agents a way to grab calls without tying up their phone lines all day. The agent sees the refreshing screen of calls on park and when they want to take one they just click on it, and a small window opens that will allow them to grab the call and/or look up more information on the caller through the callerID that is given(if available) # the purpose of this script and webpage is to allow for remote or local users of the system to log in and grab phone calls that are coming inbound into the Asterisk server and being put in the parked_channels table while they hear a soundfile for a limited amount of time before being forwarded on to either a set extension or a voicemail box. This gives remote or local agents a way to grab calls without tying up their phone lines all day. The agent sees the refreshing screen of calls on park and when they want to take one they just click on it, and a small window opens that will allow them to grab the call and/or look up more information on the caller through the callerID that is given(if available)
#
# changes:
# 60620-1343 - Added variable filtering to eliminate SQL injection attack threat
# - Added required user/pass to gain access to this page
#
require("dbconnect.php"); require("dbconnect.php");
@@ -13,6 +18,8 @@ $PHP_SELF=$_SERVER['PHP_SELF'];
$submit=$_GET["submit"]; if (!$submit) {$submit=$_POST["submit"];} $submit=$_GET["submit"]; if (!$submit) {$submit=$_POST["submit"];}
$SUBMIT=$_GET["SUBMIT"]; if (!$SUBMIT) {$SUBMIT=$_POST["SUBMIT"];} $SUBMIT=$_GET["SUBMIT"]; if (!$SUBMIT) {$SUBMIT=$_POST["SUBMIT"];}
$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
$STARTtime = date("U"); $STARTtime = date("U");
$TODAY = date("Y-m-d"); $TODAY = date("Y-m-d");
+24 -21
View File
@@ -22,6 +22,7 @@
# #
# 60311-1309 - Fixed CallerID/name for VICIDIAL calls # 60311-1309 - Fixed CallerID/name for VICIDIAL calls
# 60315-1020 - Added MySQL query fail debug print output # 60315-1020 - Added MySQL query fail debug print output
# 60622-0956 - Altered log for Zap client phones for consistent output
# #
$V = 0; # set to 1 for verbose mode $V = 0; # set to 1 for verbose mode
@@ -173,6 +174,12 @@ else {$stage = 'START';}
### call start stage ### call start stage
if ($stage =~ /START/) if ($stage =~ /START/)
{ {
use Net::MySQL;
if (!$DB_port) {$DB_port='3306';}
my $dbh = Net::MySQL->new(hostname=>"$DB_server", database=>"$DB_database", user=>"$DB_user", password=>"$DB_pass", port => "$DB_port") or die "Couldn't connect to database: $DB_server - $DB_database\n";
if ($V) {print STDERR "\nCALL STARTED\n";} if ($V) {print STDERR "\nCALL STARTED\n";}
if ($M) {print STDERR "+++++ CALL LOG START : |$unique_id|$channel|$extension|$type|$callerid|$now_date\n";} if ($M) {print STDERR "+++++ CALL LOG START : |$unique_id|$channel|$extension|$type|$callerid|$now_date\n";}
@@ -182,22 +189,24 @@ if ($stage =~ /START/)
if ($channel =~ /^Zap\//) if ($channel =~ /^Zap\//)
{ {
$channel_line = $channel; $channel_line = $channel;
$channel_line =~ s/^Zap\/|-\d$//gi; $channel_line =~ s/^Zap\///gi;
if ($V) {print STDERR "|$channel_line|";}
### you will need to customize this to your configuration in terms of how you want the Zap lines described $dbh->query("SELECT count(*) FROM phones where server_ip='$server_ip' and extension='$channel_line' and protocol='Zap';");
if ($channel_line <= 72) if ($dbh->has_selected_record) {
{ $iter=$dbh->create_record_iterator;
$channel_group = 'Inbound Local T1-1'; while ( $record = $iter->each) {
$number_dialed = $callerid; $is_client_phone = "$record->[0]";
if ($V) {print STDERR "$is_client_phone|$channel_line|\n";}
} }
if ( ($channel_line >= 73) && ($channel_line <= 96) ) }
if ($is_client_phone < 1)
{ {
$channel_group = 'Inbound 800 T1-2'; $channel_group = 'Zap Trunk Line';
$number_dialed = $callerid; $number_dialed = $callerid;
} }
} }
### This section breaks the outbound dialed number down(or builds it up) to a 10 digit number and gives it a description ### This section breaks the outbound dialed number down(or builds it up) to a 10 digit number and gives it a description
if ($channel =~ /^SIP|^IAX2/) if ( ($channel =~ /^SIP|^IAX2/) or ($is_client_phone > 0) )
{ {
if ( ($extension =~ /^901144/) && (length($extension)==16) ) #test 207 608 6400 if ( ($extension =~ /^901144/) && (length($extension)==16) ) #test 207 608 6400
{$extension =~ s/^9//gi; $channel_group = 'Outbound Intl UK';} {$extension =~ s/^9//gi; $channel_group = 'Outbound Intl UK';}
@@ -211,27 +220,21 @@ if ($stage =~ /START/)
{$extension =~ s/^9//gi; $channel_group = 'Outbound Local';} {$extension =~ s/^9//gi; $channel_group = 'Outbound Local';}
if ( ($extension =~ /^91/) && (length($extension)==12) ) if ( ($extension =~ /^91/) && (length($extension)==12) )
{$extension =~ s/^91//gi; $channel_group = 'Outbound Long Distance';} {$extension =~ s/^91//gi; $channel_group = 'Outbound Long Distance';}
if ($is_client_phone > 0)
{$channel_group = 'Zap Client Phone';}
$SIP_ext = $channel; $SIP_ext =~ s/SIP\/|IAX2\///gi; $SIP_ext = $channel; $SIP_ext =~ s/SIP\/|IAX2\/|Zap\///gi;
$number_dialed = $extension; $number_dialed = $extension;
$extension = $SIP_ext; $extension = $SIP_ext;
} }
use Net::MySQL;
if (!$DB_port) {$DB_port='3306';}
my $mysql = Net::MySQL->new(hostname=>"$DB_server", database=>"$DB_database", user=>"$DB_user", password=>"$DB_pass", port => "$DB_port") or die "Couldn't connect to database: $DB_server - $DB_database\n";
$stmtA = "INSERT INTO call_log (uniqueid,channel,channel_group,type,server_ip,extension,number_dialed,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,caller_code) values('$unique_id','$channel','$channel_group','$type','$server_ip','$extension','$number_dialed','$now_date','$now_date_epoch','','','','','$callerid')"; $stmtA = "INSERT INTO call_log (uniqueid,channel,channel_group,type,server_ip,extension,number_dialed,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,caller_code) values('$unique_id','$channel','$channel_group','$type','$server_ip','$extension','$number_dialed','$now_date','$now_date_epoch','','','','','$callerid')";
if ($V) {print STDERR "\n|$stmtA|\n";} if ($V) {print STDERR "\n|$stmtA|\n";}
$mysql->query($stmtA) or die "Couldn't execute query: |$stmtA|\n"; $dbh->query($stmtA) or die "Couldn't execute query: |$stmtA|\n";
$mysql->close; $dbh->close;
} }
+28 -21
View File
@@ -18,6 +18,10 @@
# #
# Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2 # Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
# #
# changes
#
# 60622-0957 - Altered log for Zap client phones for consistent output
#
$V = 0; # set to 1 for verbose mode $V = 0; # set to 1 for verbose mode
$M = 1; # set to 1 for 2 line messages mode $M = 1; # set to 1 for 2 line messages mode
@@ -151,31 +155,40 @@ else {$stage = 'START';}
### call start stage ### call start stage
if ($stage =~ /START/) if ($stage =~ /START/)
{ {
use Net::MySQL;
if (!$DB_port) {$DB_port='3306';}
my $dbh = Net::MySQL->new(hostname=>"$DB_server", database=>"$DB_database", user=>"$DB_user", password=>"$DB_pass", port => "$DB_port") or die "Couldn't connect to database: $DB_server - $DB_database\n";
if ($V) {print STDERR "\nCALL STARTED\n";} if ($V) {print STDERR "\nCALL STARTED\n";}
if ($M) {print STDERR "+++++ CALL LOG START : |$unique_id|$channel|$extension|$type|$callerid|$now_date\n";} if ($M) {print STDERR "+++++ CALL LOG START : |$unique_id|$channel|$extension|$type|$callerid|$now_date\n";}
$is_client_phone = 0;
if ($channel =~ /^SIP/) {$channel =~ s/-.*//gi;} if ($channel =~ /^SIP/) {$channel =~ s/-.*//gi;}
if ($channel =~ /^IAX2/) {$channel =~ s/\/\d+$//gi;} if ($channel =~ /^IAX2/) {$channel =~ s/\/\d+$//gi;}
if ($channel =~ /^Zap\//) if ($channel =~ /^Zap\//)
{ {
$channel_line = $channel; $channel_line = $channel;
$channel_line =~ s/^Zap\/|-\d$//gi; $channel_line =~ s/^Zap\///gi;
if ($V) {print STDERR "|$channel_line|";}
### you will need to customize this to your configuration in terms of how you want the Zap lines described $dbh->query("SELECT count(*) FROM phones where server_ip='$server_ip' and extension='$channel_line' and protocol='Zap';");
if ($channel_line <= 72) if ($dbh->has_selected_record) {
{ $iter=$dbh->create_record_iterator;
$channel_group = 'Inbound Local T1-1'; while ( $record = $iter->each) {
$number_dialed = $callerid; $is_client_phone = "$record->[0]";
if ($V) {print STDERR "$is_client_phone|$channel_line|\n";}
} }
if ( ($channel_line >= 73) && ($channel_line <= 96) ) }
if ($is_client_phone < 1)
{ {
$channel_group = 'Inbound 800 T1-2'; $channel_group = 'Zap Trunk Line';
$number_dialed = $callerid; $number_dialed = $callerid;
} }
} }
### This section breaks the outbound dialed number down(or builds it up) to a 10 digit number and gives it a description ### This section breaks the outbound dialed number down(or builds it up) to a 10 digit number and gives it a description
if ($channel =~ /^SIP|^IAX2/) if ( ($channel =~ /^SIP|^IAX2/) or ($is_client_phone > 0) )
{ {
if ( ($extension =~ /^901144/) && (length($extension)==16) ) #test 207 608 6400 if ( ($extension =~ /^901144/) && (length($extension)==16) ) #test 207 608 6400
{$extension =~ s/^9//gi; $channel_group = 'Outbound Intl UK';} {$extension =~ s/^9//gi; $channel_group = 'Outbound Intl UK';}
@@ -189,27 +202,21 @@ if ($stage =~ /START/)
{$extension =~ s/^9//gi; $channel_group = 'Outbound Local';} {$extension =~ s/^9//gi; $channel_group = 'Outbound Local';}
if ( ($extension =~ /^91/) && (length($extension)==12) ) if ( ($extension =~ /^91/) && (length($extension)==12) )
{$extension =~ s/^91//gi; $channel_group = 'Outbound Long Distance';} {$extension =~ s/^91//gi; $channel_group = 'Outbound Long Distance';}
if ($is_client_phone > 0)
{$channel_group = 'Zap Client Phone';}
$SIP_ext = $channel; $SIP_ext =~ s/SIP\/|IAX2\///gi; $SIP_ext = $channel; $SIP_ext =~ s/SIP\/|IAX2\/|Zap\///gi;
$number_dialed = $extension; $number_dialed = $extension;
$extension = $SIP_ext; $extension = $SIP_ext;
} }
use Net::MySQL;
if (!$DB_port) {$DB_port='3306';}
my $mysql = Net::MySQL->new(hostname=>"$DB_server", database=>"$DB_database", user=>"$DB_user", password=>"$DB_pass", port => "$DB_port") or die "Couldn't connect to database: $DB_server - $DB_database\n";
$stmtA = "INSERT INTO call_log (uniqueid,channel,channel_group,type,server_ip,extension,number_dialed,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,caller_code) values('$unique_id','$channel','$channel_group','$type','$server_ip','$extension','$number_dialed','$now_date','$now_date_epoch','','','','','$calleridname')"; $stmtA = "INSERT INTO call_log (uniqueid,channel,channel_group,type,server_ip,extension,number_dialed,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,caller_code) values('$unique_id','$channel','$channel_group','$type','$server_ip','$extension','$number_dialed','$now_date','$now_date_epoch','','','','','$calleridname')";
if ($V) {print STDERR "\n|$stmtA|\n";} if ($V) {print STDERR "\n|$stmtA|\n";}
$mysql->query($stmtA) or die "Couldn't execute query:\n"; $dbh->query($stmtA) or die "Couldn't execute query:\n";
$mysql->close; $dbh->close;
} }
+4 -2
View File
@@ -681,9 +681,10 @@ UPGRADE NOTES:
* if upgrading from 1.1.10 run the upgrade_1.1.11.sql script in MySQL * if upgrading from 1.1.10 run the upgrade_1.1.11.sql script in MySQL
(\. /home/cron/astguiclient/upgrade_1.1.11.sql) (\. /home/cron/astguiclient/upgrade_1.1.11.sql)
1.1.12 - Twenty-Fifth public release - 2006-06-XX 1.1.12 - Twenty-Fifth public release - 2006-06-22
- Security enhancements of PHP scripts to reduce SQL-injection and other threats
- Completely redesigned local call time system in VICIDIAL for more flexibility - Completely redesigned local call time system in VICIDIAL for more flexibility
- Added Drop-call and safe-harbor campaign and inbound options - Added Drop-call and safe-harbor options to campaigns and inbound groups
- Added option for allowing wrapup time between calls in vicidial.php - Added option for allowing wrapup time between calls in vicidial.php
- Multi-language translation rewritten for more flexibility and easy of use - Multi-language translation rewritten for more flexibility and easy of use
- Added more user-permission options/restrictions for both agents and admins - Added more user-permission options/restrictions for both agents and admins
@@ -691,6 +692,7 @@ UPGRADE NOTES:
- Added internal DNC list for Do-Not-Call entries across the system - Added internal DNC list for Do-Not-Call entries across the system
- Added automatic lead recycling to call back Busy calls at definable intervals - Added automatic lead recycling to call back Busy calls at definable intervals
- Added listID override and timezone lookup to all lead importing scripts - Added listID override and timezone lookup to all lead importing scripts
- Added easy-prompt-recording AGI and playback: agi-record_prompts.agi
- Many other changes and bug fixes listed in the TODO.txt file - Many other changes and bug fixes listed in the TODO.txt file
UPGRADE NOTES: UPGRADE NOTES:
* if upgrading from 1.1.11 you need to: * if upgrading from 1.1.11 you need to:
+23 -12
View File
@@ -1,4 +1,4 @@
Asterisk/astguiclient install from scratch. v.1.1.11 2006-04-28 Asterisk/astguiclient install from scratch. v.1.1.12 2006-06-22
By the astGUIclient group astguiclient@eflo.net By the astGUIclient group astguiclient@eflo.net
**** IMPORTANT - In order for vicidial/astguiclient to function correctly please **** IMPORTANT - In order for vicidial/astguiclient to function correctly please
@@ -525,7 +525,7 @@ NOTE: a minimum of MySQL 4.0.X is required
- locate -u - locate -u
- locate MySQL.pm (replace the path below with the path you find) - locate MySQL.pm (replace the path below with the path you find)
- mv /usr/lib/perl5/site_perl/5.8.6/Net/MySQL.pm MySQL.pm-old - mv /usr/lib/perl5/site_perl/5.8.6/Net/MySQL.pm MySQL.pm-old
- cp /home/cron/astguiclient_1.1.11/libs/Net/MySQL.pm /usr/lib/perl5/site_perl/5.8.6/Net/MySQL.pm - cp /home/cron/astguiclient_1.1.12/libs/Net/MySQL.pm /usr/lib/perl5/site_perl/5.8.6/Net/MySQL.pm
If you do not do this, then you will see MySQL authentication errors on your If you do not do this, then you will see MySQL authentication errors on your
Asterisk server. Asterisk server.
@@ -766,8 +766,8 @@ with the following patch:
- (1.2 tree) EXPERIMENTAL!!! If you want to use app_conference - (1.2 tree) EXPERIMENTAL!!! If you want to use app_conference
instead of meetme for VICIDIAL then follow these instructions instead of meetme for VICIDIAL then follow these instructions
- cd /usr/src/asterisk - cd /usr/src/asterisk
- wget http://www.eflo.net/files/VD_app_conference_0.5.zip - wget http://www.eflo.net/files/VD_app_conference_0.6.zip
- unzip VD_app_conference_0.5.zip - unzip VD_app_conference_0.6.zip
- cd app_conference - cd app_conference
- make clean - make clean
- make - make
@@ -1417,13 +1417,13 @@ VICIDIAL components to the system. (NOTE: make sure you have added the user "cro
SUBPHASE 6.0: putting the files in place SUBPHASE 6.0: putting the files in place
1. Go to http://astguiclient.sf.net/ and download the latest astguiclient 1. Go to http://astguiclient.sf.net/ and download the latest astguiclient
package(as of this writing it is 1.1.11) package(as of this writing it is 1.1.12)
- to install this directly on the command line type: - to install this directly on the command line type:
- cd /home/cron - cd /home/cron
- mkdir astguiclient - mkdir astguiclient
- cd astguiclient - cd astguiclient
- wget http://internap.dl.sourceforge.net/sourceforge/astguiclient/astguiclient_1.1.11.zip - wget http://internap.dl.sourceforge.net/sourceforge/astguiclient/astguiclient_1.1.12.zip
- unzip astguiclient_1.1.11.zip - unzip astguiclient_1.1.12.zip
- chmod 0755 install_server_files.pl - chmod 0755 install_server_files.pl
- perl install_server_files.pl - perl install_server_files.pl
- cd ../ - cd ../
@@ -2012,23 +2012,24 @@ it installed, you will need to do the following:
In your extensions.conf file you would replace these lines: In your extensions.conf file you would replace these lines:
exten => 8600051,1,Meetme,8600051 exten => 8600051,1,Meetme,8600051
exten => 8600052,1,Meetme,8600052 exten => 8600052,1,Meetme,8600052
... ...continue through 8600100...
exten => 78600051,1,Meetme,8600051|q exten => 78600051,1,Meetme,8600051|q
exten => 78600052,1,Meetme,8600052|q exten => 78600052,1,Meetme,8600052|q
... ...continue through 78600100...
exten => 68600051,1,Meetme,8600051|mq exten => 68600051,1,Meetme,8600051|mq
exten => 68600052,1,Meetme,8600052|mq exten => 68600052,1,Meetme,8600052|mq
... ...continue through 68600100...
with these lines: with these lines:
exten => 8600051,1,Conference(8600051) exten => 8600051,1,Conference(8600051)
exten => 8600052,1,Conference(8600052) exten => 8600052,1,Conference(8600052)
... ...continue through 8600100...
exten => 78600051,1,Conference(8600051|q) exten => 78600051,1,Conference(8600051|q)
exten => 78600052,1,Conference(8600052|q) exten => 78600052,1,Conference(8600052|q)
... ...continue through 78600100...
exten => 68600051,1,Conference(8600051|Lq) exten => 68600051,1,Conference(8600051|Lq)
exten => 68600052,1,Conference(8600052|Lq) exten => 68600052,1,Conference(8600052|Lq)
...continue through 68600100...
NOTE: If you want to do DTMF passthru with app_conference bee sure to add the NOTE: If you want to do DTMF passthru with app_conference bee sure to add the
"i" and "t" flags to the 8600XX lines: Conference(8600051|it) "i" and "t" flags to the 8600XX lines: Conference(8600051|it)
@@ -2104,6 +2105,16 @@ exten => 8500998,2,Playback(silence)
exten => 8500998,3,AGI(agi-dtmf.agi) exten => 8500998,3,AGI(agi-dtmf.agi)
exten => 8500998,4,Hangup exten => 8500998,4,Hangup
; prompt recording AGI script, ID is 4321
exten => 8168,1,Answer
exten => 8168,2,AGI(agi-record_prompts.agi)
exten => 8168,3,Hangup
; playback of recorded prompts
exten => _851XXXXX,1,Answer
exten => _851XXXXX,2,Playback(${EXTEN})
exten => _851XXXXX,3,Hangup
; VICIDIAL_auto_dialer transfer script: ; VICIDIAL_auto_dialer transfer script:
exten => 8365,1,AGI(call_log.agi,${EXTEN}) exten => 8365,1,AGI(call_log.agi,${EXTEN})
exten => 8365,2,AGI(agi-VDADtransfer.agi,${EXTEN}) exten => 8365,2,AGI(agi-VDADtransfer.agi,${EXTEN})
+12 -112
View File
@@ -1,5 +1,5 @@
+------------------------------------------------------------------------------+ +------------------------------------------------------------------------------+
| Asterisk GUI client - TODO v.1.1.12 | | Asterisk GUI client - TODO v.1.1.14 |
| | | |
| TODO file is a list of what is new from previous version as well a list of | | TODO file is a list of what is new from previous version as well a list of |
| features that are planned to be completed for future releases. HIGH priority | | features that are planned to be completed for future releases. HIGH priority |
@@ -10,125 +10,23 @@
| version your downloaded. | | version your downloaded. |
+------------------------------------------------------------------------------+ +------------------------------------------------------------------------------+
- DONE Fix several errors in the install script. moving -R to before the chmod rwx settings. changing call_park_CID to park_CID. - HIGH add option to disable detailed logging for VICIDIAL and astGUIclient server apps.
- DONE Added option to manual dialing to allow lookup of existing vicidial_list lead by phone number. If found, would not insert a new lead. - HIGH add new ALLFORCE to recording method for campaigns. will force recording of all calls and disable the button for agents no matter their vicidial_users setting.
- DONE Add drop_call_seconds(TINYINT), safe_harbor_message(Y/N) and safe_harbor_exten(VARCHAR) to the vicidial_campaigns table to allow for the playing of the safe harbor message to outbound calls two seconds after customer completes greeting(average of 5 seconds from call pickup[definable by the safe_harbor_seconds variable]), also needs to be added to the vicidial/admin.php. - HIGH add a basic predictive/adaptive algorithm to VICIDIAL to automatically speed-up and slow-down dialing by altering the dial_level at regular intervals. Would need more settings in the vicidial_campaigns table for adaptive like maximum lines per agent, dropped call ratio, dropped call rule to guide the predictive app. Would also need to change dial_level to be a DOUBLE or VARCHAR field to allow for different fractional increments. The admin.php page would have to be altered to ignore auto_dial_level changes when adaptive dialing is activated. The minimum dial_level would be set to '1' for adaptive dialing
- DONE Modify all of the outbound AGI scripts to read the drop_call_seconds and safe_harbor_ fields and use them for DROP timeout as well as playing of the safe_harbor message if selected to do so.
- DONE Add drop_call_seconds(SMALLINT), drop_message(Y/N) and drop_exten(VARCHAR) to the vicidial_inbound_groups table to allow for the playing of drop call message to inbound calls a set number of seconds after customer calls in, also needs to be added to the vicidial/admin.php.
- DONE Modify all of the inbound(and closer) AGI scripts to read the drop_call_seconds and drop_ fields and use them for DROP timeout as well as playing of the drop message if selected to do so.
- DONE Fix agentonly_callback checkbox not-defined bug in scheduled callbacks screen
- DONE Fix alert message when transfer/conf is inactive for vicidial_user and they go to disposition a call the warning shows up even if they did not try to transfer/conf.
- DONE Fix permissions issue in vicidial.php where vicidial_campaigns.auto_dial_level=0 and vicidial_user.manual_dial=0 the manual dial link still shows up.
- DONE Fix recording filename display when the filename is longer than the span supports. chop off the last few characters to make it fit should be acceptable. If over 25 characters, it will chop off the end to 22 characters and place ... at the end of the display filename. This does not effect the actualy recording filename.
- DONE Added AST_timeonVDADall_SIPmonitor.php from Angelito Manansala that allows SIP listening of sessions through click on the campaign timeonVDAD script. Added link from server_stats.php page as well.
- DONE Add permissions to vicidial admin.php for admin interfaces to restrict going into the call times and deleting the call times records:
- DONE Add validation to only allow one state_call_times record per state per call_times record
- DONE Add method for disabling the showing of the leads-able-to-be-dialed in the campaign screen of vicidial/admin.php. This will help to reduce load time of the page and reduce load on the database for systems with very large vicidial_list tables(several million records or more). This will mean adding another field to the vicidial_campaigns table. Default is to display the count.
- DONE Add a popup link that would show the dialable leads count from the campaigns screen if the dialable leads count has been hidden.
- DONE Add link or form that would show the results and query of a filter in the filter modification page without making it the active filter.
- DONE Add state to the vicidial_hopper for compatibility with the new local_call_times functions.
- DONE Change local_call_time to allow for variable time ranges instead of the presets that are available in the current version. Allow definitions by days of the week as well as by state[state will be defined in another table and referenced in a many-to-many relationship through the ct_state_call_times field which will be pipe-delimited with a list of state_call_time_ids]. There would be a default time scheme for all calls not covered by state. This will require another new table and a new section under the vicidial/admin.php page.
- DONE For the call_times and state_call_times include some presets for records including several state restrictions on dialing hours and days in the United States(USA).
- DONE Fixed alt_number_dialing form element in admin.php campaign screen
- DONE Add wrapup_seconds and wrapup_message fields to vicidial_campaigns along with a function to force a minimum wrapup time into vicidial.php after an Agent hangs up a call. The timer would start when the agent clicks on the HANGUP CUSTOMER button and if the agent dispositions the call before the wrapup time is up then they would see a screen blanking out the vicidial screen that would display the wrapup message until the timer ran out. If the wrapup timer runs out before the agent is finished dispositioning a call, nothing would happen, so the agent would not be able to move on to the next call until they selected a disposition. Wrapup time would not be in effect if the Agent uses HotKeys.
- DONE Change all vicidial stats and reports scripts to use UTF-8 instead of latin-english for multi-language support
- DONE Fix admin pages SQL errors(vicidial campaign when no active lists present and astguiclient phone searches)
- DONE Rewrite the multi-language translations to use one file per language and to allow translation to be done on a single file at a time. es_language.txt and es_language_admin.txt would be the files used for Spanish. Also, the order of the translated lines in the files would be unimportant because the translation script would order the phrases by character length to ensure that larger phrases that could contain parts of smaller phrases would be translated correctly, this allows for comments to be placed in-line with new sections of phrases for newer versions making it easier to find new un-verified translations sections and submit changes to translations files.
- DONE Create a table that will keep a current statistics cache for items like drop count and percentages per campaign per day(and for the future: last 1 minute/5 minutes/30 minutes) and dialable leads counts.
- DONE Add number of leads in hopper, link to admin.php campaign modify screen(and link from admin to this screen) and hopper and leads stats as well as drops and drop percentage to the AST_timeonVDADall page.
- DONE Convert the AST_VDhopper.pl script to DBD::MySQL perl library in place of Net::MySQL. DBD::MySQL is faster because it uses the MySQL client libs on the machine. One problem is that you need the mysqlclientlibs installed on every Asterisk server and the default installation of only the MySQL client libs will result in having to do a force install of cpan DBD::MySQL(because it tries to test with the local DB). Not to mention all of the code changes that would need to be made. There are also MySQL client licensing issues for certain installation circumstances(Net::MySQL doesn't use mysql client libs so it doesn't have those issues) but I really don't want to get into that discussion. The reason for this change is that Net::MySQL is limiting in the capacity of the queries that you can use because of how it's connection to MySQL is used. DBI doesn't have those issues and is much better supported. This is the first script to be converted to DBI, you can find the Net::MySQL version in the main directory and the DBI(DBD::mysql) version in the new DBI-scripts directory.
- DONE Test and package app_conference for beta usage with VICIDIAL as a meetme replacement. This has many performance benefits including not having to use a zaptel timer. Packaged and released on the project site. Tested in medium to low capacity VICIDIAL server, some random infrequent bugs. In contact with app_conference developers working on stabilizing code. Added instructions to SCRATCH_INSTALL on how to get app_conferenc working with VICIDIAL.
- DONE Add a link from the campaign-based reports pages to go back to the campaign screen.
- DONE Create a script to grab the login time stats from vicidial_agent_log and create a day-by-day timesheet log each week AST_agent_week.pl script. Add script to the cron instructions in SCRATCH_INSTALL doc.
- DONE Fix issues with ast_VDauto_dial script when you have two CLOSER campaigns in Blended mode dialing at the same time. To fix this we need to change many things in how the CLOSER campaigns work. We need to add a new field to the vicidial_auto_calls table to denote whether the call is from inbound or outbound(call_type ENUM('IN','OUT') default 'OUT'). For each CLOSER campaign, a special field needs to be added to vicidial_campaigns for allowable inbound groups. This will change what in-groups an agent logging into the campaign can select from as well as changing how the auto_dial script calculates how many calls to place on CLOSER campaigns in blended mode. the vicidial.php script needs to be changed as well as several changes in the admin.php script. The AST_VDauto_dial.pl script needs to be changed as well as all of the agi-VDAD....closer.agi scripts.
- DONE Fix active calls stats for multiple CLOSER campaigns in Realtime Campaign screen.
- DONE Add internal DNC list of phone numbers(vicidial_dnc table) that would be scrubbed against by the AST_VDhopper.pl script while putting leads into the hopper to be dialed and it would kick the internal DNC matches out with a special status as DNCL(Do-Not-Call-Load) so they would be in the system but unable to be dialed. Would need to add a mechanism to add a lead to this list upon agent-dispo of a call as DNC within vicidial.php. Would need to create a new admin page section to manually add leads to DNC list, ADD TO DNC link in the LISTS section. Also, would add a parameter to vicidial_campaigns(dnc_list_enabled ENUM('Y','N')) where a campaign could be exempted from the system's DNC list restrictions if set to N(would not be active by default 'N').
- DONE Add option for PRI T1 system usage with VICIDIAL outbound to automatically grab Busy and Disconnect information from PRI call termincation codes and use those for NA dispositions. VD_hangup.agi and AST_VDauto_dial.pl modified.
- DONE Remove gmt time validation of leads from AST_VDauto-dial because AST_VDhopper already removes leads that are outside of the appropriate range of GMT offsets when it is run every minute. Removing this redundancy should speed up the dialing slightly.
- DONE Fix VD_hangup to work with CLOSER transfer-from-fronter calls, different log contents than from CLOSER inbound call.
- DONE Add option for disposition-based lead recycling on an automated and timed basis per campaign. It will be some sort of method to be able to auto-insert Busy/Ring-no-answer/other-NA calls back into the hopper after a certain timeout. there will be a minimum of 120 seconds before the lead will be allowed to go back into the hopper and a lead can only go back into the hopper a maximum of 10 times before the list would need to be reset. The vicidial_list.called_since_last_reset field needs to be altered to allow for counting of recycle attempts. All scripts need to be able to keep the state of call_since_last_reset. A new table: vicidial_lead_recycle that will function somewhat like HotKeys on the campaign screen. admin.php and AST_VDhopper.pl will need to be modified.
- DONE Change ADMIN_area_code_populate.pl script to ignore the header row of the phone codes gmt file DB import
- DONE Add database GMT lookup to the VICIDIAL_IN_new_leads_file.pl lead loader lead import process.
- DONE Change ADMIN_adjust_GMTnow_on_leads.pl script to use database instead of flat text file.
- DONE Fix display issues with LIST MODIFY page on admin.php for statuses because of lead recycling and with GMT offset for positive GMT offsets.
- DONE Add listID override feature to the VICIDIAL_IN_new_leads_file.pl lead loader lead import process to force all leads being loaded into the same list_id.
- DONE Add listID override feature to the basic web-based lead loader lead import process to force all leads being loaded into the same list_id.
- DONE Add database GMT lookup to the basic web-based lead loader lead import process.
- DONE Add listID override feature to the super web-based lead loader lead import process to force all leads being loaded into the same list_id.
- DONE Add database GMT lookup to the super web-based lead loader lead import process. This one is more difficult because of the many scripts and sections used to parse and insert leads: listloader_super.pl, listloader.pl, new_listloader_superL.php
- DONE standardize the query results variable in PHP scripts to $rslt.
- HIGH Fix call_log entries for Zap client phones where call information is in different places than if calls are placed from SIP or IAX client phones. call_log AGI scripts.
- MEDIUM fix MySQL error on campaign modify page for dialable leads when no active lists for campaign.
- MEDIUM add option to disable detailed logging for VICIDIAL and astGUIclient server apps.
- MEDIUM add new ALLFORCE to recording method for campaigns. will force recording of all calls and disable the button for agents no matter their vicidial_users setting.
- MEDIUM add a basic predictive/adaptive algorithm to VICIDIAL to automatically speed-up and slow-down dialing by altering the dial_level at regular intervals. Would need more settings in the vicidial_campaigns table for adaptive like maximum lines per agent, dropped call ratio, dropped call rule to guide the predictive app. Would also need to change dial_level to be a DOUBLE or VARCHAR field to allow for different fractional increments. The admin.php page would have to be altered to ignore auto_dial_level changes when adaptive dialing is activated. The minimum dial_level would be set to '1' for adaptive dialing
auto_dial_level VARCHAR(6), # allow for just about anything. precision decimal too auto_dial_level VARCHAR(6), # allow for just about anything. precision decimal too
adaptive_dial_level ENUM('Y','N'), # turns on adaptive script and prevents dial_level admin changes adaptive_dial_level ENUM('Y','N'), # turns on adaptive script and prevents dial_level admin changes
adaptive_maximum_level VARCHAR(6), # sets highest dial_level possible by adaptive app adaptive_maximum_level VARCHAR(6), # sets highest dial_level possible by adaptive app
adaptive_dropped_percentage SMALLINT(3), # percentage of accaptable dropped calls adaptive_dropped_percentage SMALLINT(3), # percentage of accaptable dropped calls
adaptive_dropped_rule ENUM('HARD_LIMIT','TAPERED','AVERAGE'), # method for adhearing to % limit adaptive_dropped_rule ENUM('HARD_LIMIT','TAPERED','AVERAGE'), # method for adhearing to % limit
- MEDIUM room manager documentation - manual. Probably a free 2 chapter black and white manual and a full color print book available for sale. - HIGH room manager documentation - manual. Probably a free 2 chapter black and white manual and a full color print download available for sale.
- MEDIUM Rewrite the inbound and closer call handling to allow for music on hold per in-group and a single queue app instead of multiple AGIs each running their own queries. Currently with large queues and long wait times a lot of load is generated with calls on hold in the queue. Switching to a central queue application would reduce the load and speed things up. - MEDIUM Rewrite the inbound and closer call handling to allow for music on hold per in-group and a single queue app instead of multiple AGIs each running their own queries. Currently with large queues and long wait times a lot of load is generated with calls on hold in the queue. Switching to a central queue application would reduce the load and speed things up.
@@ -151,6 +49,8 @@
- MEDIUM Convert all scripts to DBD::MySQL perl library in place of Net::MySQL. DBD::MySQL is faster because it uses the MySQL client libs on the machine. One problem is that you need the mysqlclientlibs installed on every - MEDIUM Convert all scripts to DBD::MySQL perl library in place of Net::MySQL. DBD::MySQL is faster because it uses the MySQL client libs on the machine. One problem is that you need the mysqlclientlibs installed on every
Asterisk server and the default installation of only the MySQL client libs will result in having to do a force install of cpan DBD::MySQL(because it tries to test with the local DB). Not to mention all of the code changes that would need to be made. There are also MySQL client licensing issues for certain installation circumstances(Net::MySQL doesn't use mysql client libs so it doesn't have those issues) but I really don't want to get into that discussion. We will start by converting at least one perl script for each release until we have converted then all, then we will no longer support Net::MySQL. This will probably take some time, but the scripts that are added to the DBI-scripts folder will be drop-in replacements for the Net versions that are installed by default. Asterisk server and the default installation of only the MySQL client libs will result in having to do a force install of cpan DBD::MySQL(because it tries to test with the local DB). Not to mention all of the code changes that would need to be made. There are also MySQL client licensing issues for certain installation circumstances(Net::MySQL doesn't use mysql client libs so it doesn't have those issues) but I really don't want to get into that discussion. We will start by converting at least one perl script for each release until we have converted then all, then we will no longer support Net::MySQL. This will probably take some time, but the scripts that are added to the DBI-scripts folder will be drop-in replacements for the Net versions that are installed by default.
- MEDIUM Create a visual SQL builder for the filter SQL section.
- MEDIUM add ability to call CLOSER campaigns "BLEND" or "INBND". would require many script changes from server side to client side, not set in stone yet, but considering it. - MEDIUM add ability to call CLOSER campaigns "BLEND" or "INBND". would require many script changes from server side to client side, not set in stone yet, but considering it.
- MEDIUM add some kind of intelligent call-routing to astguiclient so that you can auto-forward calls to another extension from within astguiclient.php instead of using your phone or something like Queues which can mess up other things. This will need it's own table in the DB and probably some extensions.conf entries and an AGI script or two to do the actual call routing. - MEDIUM add some kind of intelligent call-routing to astguiclient so that you can auto-forward calls to another extension from within astguiclient.php instead of using your phone or something like Queues which can mess up other things. This will need it's own table in the DB and probably some extensions.conf entries and an AGI script or two to do the actual call routing.
+489
View File
@@ -0,0 +1,489 @@
+------------------------------------------------------------------------------+
| Asterisk GUI client - TODO v.1.1.12 |
| |
| TODO file is a list of what is new from previous version as well a list of |
| features that are planned to be completed for future releases. HIGH priority |
| items are usually going to be completed for the next release. This file is |
| kept updated on the project website by the developers and does not |
| necessarily reflect the status of features for the last release. If you are |
| reading this file from the release package, then it is accurate for the |
| version your downloaded. |
+------------------------------------------------------------------------------+
- DONE Fix several errors in the install script. moving -R to before
the chmod rwx settings. changing call_park_CID to park_CID.
- DONE Added option to manual dialing to allow lookup of existing
vicidial_list lead by phone number. If found, would not insert a new lead.
- DONE Add drop_call_seconds(TINYINT), safe_harbor_message(Y/N) and
safe_harbor_exten(VARCHAR) to the vicidial_campaigns table to allow for the
playing of the safe harbor message to outbound calls two seconds after customer
completes greeting(average of 5 seconds from call pickup[definable by the
safe_harbor_seconds variable]), also needs to be added to the
vicidial/admin.php.
- DONE Modify all of the outbound AGI scripts to read the
drop_call_seconds and safe_harbor_ fields and use them for DROP timeout as well
as playing of the safe_harbor message if selected to do so.
- DONE Add drop_call_seconds(SMALLINT), drop_message(Y/N) and
drop_exten(VARCHAR) to the vicidial_inbound_groups table to allow for the
playing of drop call message to inbound calls a set number of seconds after
customer calls in, also needs to be added to the vicidial/admin.php.
- DONE Modify all of the inbound(and closer) AGI scripts to read the
drop_call_seconds and drop_ fields and use them for DROP timeout as well as
playing of the drop message if selected to do so.
- DONE Fix agentonly_callback checkbox not-defined bug in scheduled
callbacks screen
- DONE Fix alert message when transfer/conf is inactive for
vicidial_user and they go to disposition a call the warning shows up even if
they did not try to transfer/conf.
- DONE Fix permissions issue in vicidial.php where
vicidial_campaigns.auto_dial_level=0 and vicidial_user.manual_dial=0 the manual
dial link still shows up.
- DONE Fix recording filename display when the filename is longer than
the span supports. chop off the last few characters to make it fit should be
acceptable. If over 25 characters, it will chop off the end to 22 characters and
place ... at the end of the display filename. This does not effect the actualy
recording filename.
- DONE Added AST_timeonVDADall_SIPmonitor.php from Angelito Manansala
that allows SIP listening of sessions through click on the campaign timeonVDAD
script. Added link from server_stats.php page as well.
- DONE Add permissions to vicidial admin.php for admin interfaces to
restrict going into the call times and deleting the call times records:
- DONE Add validation to only allow one state_call_times record per
state per call_times record
- DONE Add method for disabling the showing of the
leads-able-to-be-dialed in the campaign screen of vicidial/admin.php. This will
help to reduce load time of the page and reduce load on the database for systems
with very large vicidial_list tables(several million records or more). This will
mean adding another field to the vicidial_campaigns table. Default is to display
the count.
- DONE Add a popup link that would show the dialable leads count from
the campaigns screen if the dialable leads count has been hidden.
- DONE Add link or form that would show the results and query of a
filter in the filter modification page without making it the active filter.
- DONE Add state to the vicidial_hopper for compatibility with the new
local_call_times functions.
- DONE Change local_call_time to allow for variable time ranges instead
of the presets that are available in the current version. Allow definitions by
days of the week as well as by state[state will be defined in another table and
referenced in a many-to-many relationship through the ct_state_call_times field
which will be pipe-delimited with a list of state_call_time_ids]. There would be
a default time scheme for all calls not covered by state. This will require
another new table and a new section under the vicidial/admin.php page.
- DONE For the call_times and state_call_times include some presets for
records including several state restrictions on dialing hours and days in the
United States(USA).
- DONE Fixed alt_number_dialing form element in admin.php campaign
screen
- DONE Add wrapup_seconds and wrapup_message fields to
vicidial_campaigns along with a function to force a minimum wrapup time into
vicidial.php after an Agent hangs up a call. The timer would start when the
agent clicks on the HANGUP CUSTOMER button and if the agent dispositions the
call before the wrapup time is up then they would see a screen blanking out the
vicidial screen that would display the wrapup message until the timer ran out.
If the wrapup timer runs out before the agent is finished dispositioning a call,
nothing would happen, so the agent would not be able to move on to the next call
until they selected a disposition. Wrapup time would not be in effect if the
Agent uses HotKeys.
- DONE Change all vicidial stats and reports scripts to use UTF-8
instead of latin-english for multi-language support
- DONE Fix admin pages SQL errors(vicidial campaign when no active
lists present and astguiclient phone searches)
- DONE Rewrite the multi-language translations to use one file per
language and to allow translation to be done on a single file at a time.
es_language.txt and es_language_admin.txt would be the files used for Spanish.
Also, the order of the translated lines in the files would be unimportant
because the translation script would order the phrases by character length to
ensure that larger phrases that could contain parts of smaller phrases would be
translated correctly, this allows for comments to be placed in-line with new
sections of phrases for newer versions making it easier to find new un-verified
translations sections and submit changes to translations files.
- DONE Create a table that will keep a current statistics cache for
items like drop count and percentages per campaign per day(and for the future:
last 1 minute/5 minutes/30 minutes) and dialable leads counts.
- DONE Add number of leads in hopper, link to admin.php campaign modify
screen(and link from admin to this screen) and hopper and leads stats as well as
drops and drop percentage to the AST_timeonVDADall page.
- DONE Convert the AST_VDhopper.pl script to DBD::MySQL perl library in
place of Net::MySQL. DBD::MySQL is faster because it uses the MySQL client libs
on the machine. One problem is that you need the mysqlclientlibs installed on
every Asterisk server and the default installation of only the MySQL client libs
will result in having to do a force install of cpan DBD::MySQL(because it tries
to test with the local DB). Not to mention all of the code changes that would
need to be made. There are also MySQL client licensing issues for certain
installation circumstances(Net::MySQL doesn't use mysql client libs so it
doesn't have those issues) but I really don't want to get into that discussion.
The reason for this change is that Net::MySQL is limiting in the capacity of the
queries that you can use because of how it's connection to MySQL is used. DBI
doesn't have those issues and is much better supported. This is the first script
to be converted to DBI, you can find the Net::MySQL version in the main
directory and the DBI(DBD::mysql) version in the new DBI-scripts directory.
- DONE Test and package app_conference for beta usage with VICIDIAL as
a meetme replacement. This has many performance benefits including not having to
use a zaptel timer. Packaged and released on the project site. Tested in medium
to low capacity VICIDIAL server, some random infrequent bugs. In contact with
app_conference developers working on stabilizing code. Added instructions to
SCRATCH_INSTALL on how to get app_conferenc working with VICIDIAL.
- DONE Add a link from the campaign-based reports pages to go back to
the campaign screen.
- DONE Create a script to grab the login time stats from
vicidial_agent_log and create a day-by-day timesheet log each week
AST_agent_week.pl script. Add script to the cron instructions in SCRATCH_INSTALL
doc.
- DONE Fix issues with ast_VDauto_dial script when you have two CLOSER
campaigns in Blended mode dialing at the same time. To fix this we need to
change many things in how the CLOSER campaigns work. We need to add a new field
to the vicidial_auto_calls table to denote whether the call is from inbound or
outbound(call_type ENUM('IN','OUT') default 'OUT'). For each CLOSER campaign, a
special field needs to be added to vicidial_campaigns for allowable inbound
groups. This will change what in-groups an agent logging into the campaign can
select from as well as changing how the auto_dial script calculates how many
calls to place on CLOSER campaigns in blended mode. the vicidial.php script
needs to be changed as well as several changes in the admin.php script. The
AST_VDauto_dial.pl script needs to be changed as well as all of the
agi-VDAD....closer.agi scripts.
- DONE Fix active calls stats for multiple CLOSER campaigns in Realtime
Campaign screen.
- DONE Add internal DNC list of phone numbers(vicidial_dnc table) that
would be scrubbed against by the AST_VDhopper.pl script while putting leads into
the hopper to be dialed and it would kick the internal DNC matches out with a
special status as DNCL(Do-Not-Call-Load) so they would be in the system but
unable to be dialed. Would need to add a mechanism to add a lead to this list
upon agent-dispo of a call as DNC within vicidial.php. Would need to create a
new admin page section to manually add leads to DNC list, ADD TO DNC link in the
LISTS section. Also, would add a parameter to
vicidial_campaigns(dnc_list_enabled ENUM('Y','N')) where a campaign could be
exempted from the system's DNC list restrictions if set to N(would not be active
by default 'N').
- DONE Add option for PRI T1 system usage with VICIDIAL outbound to
automatically grab Busy and Disconnect information from PRI call termincation
codes and use those for NA dispositions. VD_hangup.agi and AST_VDauto_dial.pl
modified.
- DONE Remove gmt time validation of leads from AST_VDauto-dial because
AST_VDhopper already removes leads that are outside of the appropriate range of
GMT offsets when it is run every minute. Removing this redundancy should speed
up the dialing slightly.
- DONE Fix VD_hangup to work with CLOSER transfer-from-fronter calls,
different log contents than from CLOSER inbound call.
- DONE Add option for disposition-based lead recycling on an automated
and timed basis per campaign. It will be some sort of method to be able to
auto-insert Busy/Ring-no-answer/other-NA calls back into the hopper after a
certain timeout. there will be a minimum of 120 seconds before the lead will be
allowed to go back into the hopper and a lead can only go back into the hopper a
maximum of 10 times before the list would need to be reset. The
vicidial_list.called_since_last_reset field needs to be altered to allow for
counting of recycle attempts. All scripts need to be able to keep the state of
call_since_last_reset. A new table: vicidial_lead_recycle that will function
somewhat like HotKeys on the campaign screen. admin.php and AST_VDhopper.pl will
need to be modified.
- DONE Change ADMIN_area_code_populate.pl script to ignore the header
row of the phone codes gmt file DB import
- DONE Add database GMT lookup to the VICIDIAL_IN_new_leads_file.pl
lead loader lead import process.
- DONE Change ADMIN_adjust_GMTnow_on_leads.pl script to use database
instead of flat text file.
- DONE Fix display issues with LIST MODIFY page on admin.php for
statuses because of lead recycling and with GMT offset for positive GMT offsets.
- DONE Add listID override feature to the VICIDIAL_IN_new_leads_file.pl
lead loader lead import process to force all leads being loaded into the same
list_id.
- DONE Add listID override feature to the basic web-based lead loader
lead import process to force all leads being loaded into the same list_id.
- DONE Add database GMT lookup to the basic web-based lead loader lead
import process.
- DONE Add listID override feature to the super web-based lead loader
lead import process to force all leads being loaded into the same list_id.
- DONE Add database GMT lookup to the super web-based lead loader lead
import process. This one is more difficult because of the many scripts and
sections used to parse and insert leads for the different formats and field
orders: listloader_super.pl, listloader.pl, new_listloader_superL.php
- DONE standardize the query results variable in PHP scripts to $rslt.
- DONE SECURITY FIX, filter all variables relating to SQL queries in
agc scripts(vicidial.php, astguiclient.php, etc...) This is for a SQL injection
vulnerability where a malicious user puts SQL fragments into a variable field in
order to manipulate or destroy the database.
- DONE SECURITY FIX, filter all variables relating to SQL queries in
admin scripts(vicidial and astguiclient folders, admin.php, etc...)
- DONE Change the admin_search_lead page to include multiple results.
- DONE Add an AGI script to record audio for prompts with an 8-digit
filename that can be played by dialing the 8 digit filename. 85100001-85199999.
The AGI script would announce beginning of recording and to press pound when
done recording, then would say thank-you and announce the filename of the
recording. The recordings would be saved in GSM format and can be used in any of
the fields within VICIDIAL that call for a message exten like the survey script.
agi-record_prompts.agi script created.
- DONE Add link from reports pages back to main reports page.
- DONE fix MySQL errors on campaign modify and leads modify pages for
dialable leads when no active lists for campaign lists.
- DONE Fix call_log entries for Zap client phones where call
information is in different places than if calls are placed from SIP or IAX
client phones. call_log and call_logCID AGI scripts.
- DONE Finish rough German Admin pages translations
- MEDIUM add option to disable detailed logging for VICIDIAL and
astGUIclient server apps.
- MEDIUM add new ALLFORCE to recording method for campaigns. will force
recording of all calls and disable the button for agents no matter their
vicidial_users setting.
- MEDIUM add a basic predictive/adaptive algorithm to VICIDIAL to
automatically speed-up and slow-down dialing by altering the dial_level at
regular intervals. Would need more settings in the vicidial_campaigns table for
adaptive like maximum lines per agent, dropped call ratio, dropped call rule to
guide the predictive app. Would also need to change dial_level to be a DOUBLE or
VARCHAR field to allow for different fractional increments. The admin.php page
would have to be altered to ignore auto_dial_level changes when adaptive dialing
is activated. The minimum dial_level would be set to '1' for adaptive dialing
auto_dial_level VARCHAR(6), # allow for just about anything.
precision decimal too
adaptive_dial_level ENUM('Y','N'), # turns on adaptive script and
prevents dial_level admin changes
adaptive_maximum_level VARCHAR(6), # sets highest dial_level
possible by adaptive app
adaptive_dropped_percentage SMALLINT(3), # percentage of
accaptable dropped calls
adaptive_dropped_rule ENUM('HARD_LIMIT','TAPERED','AVERAGE'), # method
for adhearing to % limit
- MEDIUM room manager documentation - manual. Probably a free 2 chapter
black and white manual and a full color print download available for sale.
- MEDIUM Rewrite the inbound and closer call handling to allow for music
on hold per in-group and a single queue app instead of multiple AGIs each
running their own queries. Currently with large queues and long wait times a lot
of load is generated with calls on hold in the queue. Switching to a central
queue application would reduce the load and speed things up.
- MEDIUM Add optional field to phones table to allow for different
recording file names in astguiclient.php, Similar to vicidial options.
- MEDIUM make 3rd party consultative transfers work for Local extensions,
also for internal/local transfer to vicidial closers if possible.
- MEDIUM Attempt to make some kind of holiday schedule function for
national and state holidays that would be able block out states on specific
no-call days. This is rather difficult because of the way some holidays are
scheduled, I.E. Easter.
- MEDIUM Add ChanSpy functionality to listen-in on VOIP channels in
astguiclient.php. Maybe not since Chanspy can cause problems like crashing the
Asterisk server. Need to do more testing.
- MEDIUM Create a script to allow vicidial agents to dial into an AGI
script that would ask for user/pass and then place them onto their
vicidial.php-defined sessionid.
- MEDIUM add link in astguiclient to login and logout from Asterisk
Queues
- MEDIUM add script to get "show queues" information and place in a DB
table to be used to see who is in an Asterisk Queue. This would mostly be used
to give a LOGGED-IN and LOGGED-OUT display for astguiclient.php and possibly add
an Asterisk Queue display tab or popup for astguiclient.php. Info would be
updated one to four times a minute so it would not be real-time.
- MEDIUM add new tab to astguiclient.php script to show status of
Asterisk queues
- MEDIUM Convert all scripts to DBD::MySQL perl library in place of
Net::MySQL. DBD::MySQL is faster because it uses the MySQL client libs on the
machine. One problem is that you need the mysqlclientlibs installed on every
Asterisk server and the default installation of only the MySQL client libs will
result in having to do a force install of cpan DBD::MySQL(because it tries to
test with the local DB). Not to mention all of the code changes that would need
to be made. There are also MySQL client licensing issues for certain
installation circumstances(Net::MySQL doesn't use mysql client libs so it
doesn't have those issues) but I really don't want to get into that discussion.
We will start by converting at least one perl script for each release until we
have converted then all, then we will no longer support Net::MySQL. This will
probably take some time, but the scripts that are added to the DBI-scripts
folder will be drop-in replacements for the Net versions that are installed by
default.
- MEDIUM Create a visual SQL builder for the filter SQL section.
- MEDIUM add ability to call CLOSER campaigns "BLEND" or "INBND". would
require many script changes from server side to client side, not set in stone
yet, but considering it.
- MEDIUM add some kind of intelligent call-routing to astguiclient so
that you can auto-forward calls to another extension from within
astguiclient.php instead of using your phone or something like Queues which can
mess up other things. This will need it's own table in the DB and probably some
extensions.conf entries and an AGI script or two to do the actual call routing.
- MEDIUM add skills-based routing to give the ability for a manager to
set an agent at a higher or lower level per campaign or in-group. Defaults to
level 0 possible values will be -9 through 9
- MEDIUM add all possible fields to the SCRIPT tab to auto-populate like
in-group for inbound/closer, campaign and others
- MEDIUM add ability to scrub leads being imported in the lead loader
against the vicidial_dnc list as they are being imported.
- MEDIUM add ability upon vicidial.php login to take a number to dial as
a password and a reserved word(something like MANUAL in all caps) that would
allow the use of an EXTERNAL phone without setting it up as an asterisk.phones
entry.
- MEDIUM rebuild the vdremote.php remote agents pages to use
AJAX(PHP/Javascript/XMLHTTPRequest) for real-time popups of call data.
- MEDIUM allow custom audio welcome message for vicidial campaigns. This
might be an app_conference only feature.
- MEDIUM create a cron script and method for creating new extensions in
the sip.conf/iax.conf files as well as dialplan entries(extensions.conf). This
will require more fields in the phones table to account for variables available
to the protocols. The conf files would need to be altered before to have a flag
for the beginning and ending of the auto-generated content. This would also
necessitate a TEXT area for the extensions.conf content(that would be default
generated but could be manually altered). The cron script would be run every 5
minutes or so to see if any phones had altered content, and if so generate new
auto-content and do a 'reload' on the asterisk server to activate the new
content.
- MEDIUM add a count-up-timer to active channels on the astguiclient MAIN
screen(this may be an Asterisk 1.2+ required feature).
- MEDIUM Change VICIDIAL autodialing configuration to allow dialing of
alt_phone numbers as well as address3 phone numbers after dialing main number.
It is already possible to dial an alternate phone number manually as an agent
once the customer info is up on the screen, but this would be doing it in an
automated fashion. Best way for this may be to reconfigure the
called_since_last_reset field to allow N, 1, 2, Y. This would require
reprogramming several server scripts and php pages.
- MEDIUM Try a few of the frequently launched scripts as C
programs(call_log.agi and the AST_send child scripts) to see if they reduce
system load and/or speed up those processes.
- MEDIUM Change the autodialing system around so that there can be
dialing-out-only servers and agent-only servers in a multi-server load-balanced
environment. This is suprisingly simple to do, but would require all servers to
be controlled by a single instance of AST_VDauto_dial.pl running on one machine.
Also, in the case of IAX2 channel native transfers, we would need to change the
AGI scripts that route the calls and create a new script to alter the
vicidial_auto_calls records to the agent server call_server_ip and channel name
because the call would disappear from the originating server causing "customer
hungup" warnings.
- MEDIUM Add method of picking up astGUIclient parked calls by only
dialing digits on a regular extension without using the astGUIclient.
- MEDIUM admin/installer/maintainer documentation as well as
troubleshooting guide
- MEDIUM Run some lab-style load tests on VICIDIAL and show recommended
configurations as well as "highest recommended" settings
- LOW add the ability to run separate companies on the same VICIDIAL
server. This will not be easy. All admin tasks as well asl user tasks and stats
will need to have divisions so that nothing is accessible from the other groups.
Also, the resources of the system(outbound trunks, hard drive space, other
shared elements, etc...) so that one group cannot hog the shared resources of
the the server.
- LOW Making the server install script a customizable with installer
prompts
- LOW Create guidelines and suggestions for deactivating unused
modules from Asterisk for astGUIclient users
- LOW Revisit possibility of using something other than CallerIDname
to tag a call process, probably a long shot without altering the Asterisk code,
but that may be an option.
- LOW add new method for capping the maximum number of attempts to try
leads of a specific status. This would be set up like HotKeys are, per campaign
where you would select the status and define the maximum number of attempts for
that type of status for that campaign and the VDhopper wouldn't allow that kind
of lead into the hopper if it was over the max value of call_count.(having
filters reduced the priority of this item since you can do a lot of custom
coding to duplicate this feature in vicidial_lead_filters)
- LOW add a new script for using SoX to analyze the first 5 seconds of
a ring-time recording within 15 minutes of the NA call ending and detecting if
it has the SIT tone at the beginning of it so the lead can be taken out of the
list as a DC. adding PRI hangup codes has reduced priority for this item.
- ON-HOLD We are also looking at creating an inbound-agent-specific GUI
that would ideally work with Asterisk queues but that is not very likely given
the current lack of events being given off by queues(this is much less likely to
be built now that VICIDIAL takes inbound calls)
- ON-HOLD add a way of checking that there is no more than 1 channel in
the meetme room with the agent before another call to that agent. Currently this
happens less than 0.1% of the time(mostly on heavily loaded systems), but
another check might change that to zero.
- ON-HOLD Localization of each server based on Intl. dial codes and/or
country codes. very difficult to do this based on dial-codes, if used in other
country, best to not use the adjust_gmt script.
+14 -6
View File
@@ -4,7 +4,8 @@ This system was initially created to fill the need of a customer service group
being able to call up clients efficiently and without using a predictive dialer being able to call up clients efficiently and without using a predictive dialer
that would potentially lose calls and alienate clients. Since then we have added that would potentially lose calls and alienate clients. Since then we have added
the ability to do limited predictive dialing alongside the traditional the ability to do limited predictive dialing alongside the traditional
one-call-at-a-time dialing. one-call-at-a-time dialing as well as the ability to take inbound calls and set
up campaigns to do blended inbound and outbound at the same time.
Features: Features:
- Ability for an agent to call clients in succession from a database through a web-client - Ability for an agent to call clients in succession from a database through a web-client
@@ -17,22 +18,27 @@ Features:
- Ability to autodial campaigns to start with a simple IVR then direct to agent - Ability to autodial campaigns to start with a simple IVR then direct to agent
- Ability to park the customer with custom music per campaign - Ability to park the customer with custom music per campaign
- Ability to send a dropped call to a voicemail box per campaign if no agent is available - Ability to send a dropped call to a voicemail box per campaign if no agent is available
- Ability to function as an ACD for inbound and closer calls - Ability to set outbound CallerID per campaign
- Ability to take inbound calls grabbing CallerID - Ability to take inbound calls grabbing CallerID
- Ability to function as an ACD for inbound and closer calls
- Ability to have an agent take both inbound and outbound calls in one session(blended) - Ability to have an agent take both inbound and outbound calls in one session(blended)
- Ability for agents to log in remotely and have calls redirected to any phone number - Ability for agents to log in remotely and have calls redirected to any phone number
- Ability to start and stop recording an agent's calls at any time - Ability to start and stop recording an agent's calls at any time
- Ability to automatically record all calls - Ability to automatically record all calls
- Ability to call upto two other customer numbers in the same lead - Ability to call upto two other customer numbers for the same lead
- Ability to schedule a callback with a customer as either any agent or agent specific - Ability to schedule a callback with a customer as either any agent or agent specific
- Faster dispositioning of calls with agent key-binding (HotKeys) - Faster dispositioning of calls with agent key-binding (HotKeys)
- Ability to add custom call dispositions per campaign - Ability to add custom call dispositions per campaign
- Dialing with TimeZone restrictions - Dialing with custom TimeZone restrictions including per state and per weekday
- Dialing with Answering Machine Detection, also playing a message for AM calls - Dialing with Answering Machine Detection, also playing a message for AM calls
- Ability in Manual dial mode to preview leads before dialing - Ability in Manual dial mode to preview leads before dialing
- Ability agents to be logged in remotely anywhere with just a phone and a web browser - Ability for agents to be logged in remotely anywhere with just a phone and a web browser
- Multiple campaigns and lead-lists are possible - Multiple campaigns and lead-lists are possible
- Recycling of Busy calls at a specified interval without resetting a list
- Ability to use custom database queries in campaign dialing - Ability to use custom database queries in campaign dialing
- Option of a drop timer with safe-harbor message for FTC compliance
- Internal DNC list can optionally be activated per campaign
- Definable Wrapup-time per campaign
- Load Balancing across multiple inbound or outbound Asterisk servers is possible - Load Balancing across multiple inbound or outbound Asterisk servers is possible
- Several real-time and summary reports available - Several real-time and summary reports available
- Real-time campaign display screens - Real-time campaign display screens
@@ -44,7 +50,9 @@ Features:
- Ability for managers to enter conversations with agents and customers - Ability for managers to enter conversations with agents and customers
- Each user has their own login - Each user has their own login
- Web-based administration - Web-based administration
- Client web-app and admin web pages available in English and Spanish - Client web-app and admin web pages available in English, Spanish, Greek and German
- Client web-app web pages available in English, Spanish, Greek, German, French, Italian, Portuguese and Brazillian Portuguese
- Admin web pages available in English, Spanish, Greek and German
Required components: Required components:
- Asterisk server with Zap, IAX2 or SIP trunks - Asterisk server with Zap, IAX2 or SIP trunks
+5 -3
View File
@@ -192,12 +192,15 @@ print "setting cron scripts to executable...\n";
print "Copying agi-bin scripts...\n"; print "Copying agi-bin scripts...\n";
`cp -f ./agi-dtmf.agi $agibin/`; `cp -f ./agi-dtmf.agi $agibin/`;
`cp -f ./agi-record_prompts.agi $agibin/`;
`cp -f ./agi-VDAD_LB_closer.agi $agibin/`; `cp -f ./agi-VDAD_LB_closer.agi $agibin/`;
`cp -f ./agi-VDAD_LB_closer_inbound.agi $agibin/`; `cp -f ./agi-VDAD_LB_closer_inbound.agi $agibin/`;
`cp -f ./agi-VDAD_LB_transfer.agi $agibin/`; `cp -f ./agi-VDAD_LB_transfer.agi $agibin/`;
`cp -f ./agi-VDAD_LO_closer.agi $agibin/`; `cp -f ./agi-VDAD_LO_closer.agi $agibin/`;
`cp -f ./agi-VDAD_LO_closer_inbound.agi $agibin/`; `cp -f ./agi-VDAD_LO_closer_inbound.agi $agibin/`;
`cp -f ./agi-VDAD_LO_transfer.agi $agibin/`; `cp -f ./agi-VDAD_LO_transfer.agi $agibin/`;
`cp -f ./agi-VDADautoREMINDER.agi $agibin/`;
`cp -f ./agi-VDADautoREMINDERxfer.agi $agibin/`;
`cp -f ./agi-VDADcloser.agi $agibin/`; `cp -f ./agi-VDADcloser.agi $agibin/`;
`cp -f ./agi-VDADcloser_inbound.agi $agibin/`; `cp -f ./agi-VDADcloser_inbound.agi $agibin/`;
`cp -f ./agi-VDADcloser_inbound_5ID.agi $agibin/`; `cp -f ./agi-VDADcloser_inbound_5ID.agi $agibin/`;
@@ -208,21 +211,20 @@ print "Copying agi-bin scripts...\n";
`cp -f ./agi-VDADcloser_PHONE.agi $agibin/`; `cp -f ./agi-VDADcloser_PHONE.agi $agibin/`;
`cp -f ./agi-VDADtransfer.agi $agibin/`; `cp -f ./agi-VDADtransfer.agi $agibin/`;
`cp -f ./agi-VDADtransferSURVEY.agi $agibin/`; `cp -f ./agi-VDADtransferSURVEY.agi $agibin/`;
`cp -f ./agi-VDADautoREMINDER.agi $agibin/`;
`cp -f ./call_inbound.agi $agibin/`; `cp -f ./call_inbound.agi $agibin/`;
`cp -f ./call_log.agi $agibin/`; `cp -f ./call_log.agi $agibin/`;
`cp -f ./call_logCID.agi $agibin/`; `cp -f ./call_logCID.agi $agibin/`;
`cp -f ./call_park.agi $agibin/`; `cp -f ./call_park.agi $agibin/`;
`cp -f ./park_CID.agi $agibin/`;
`cp -f ./call_park_EXT.agi $agibin/`; `cp -f ./call_park_EXT.agi $agibin/`;
`cp -f ./call_park_I.agi $agibin/`; `cp -f ./call_park_I.agi $agibin/`;
`cp -f ./call_park_L.agi $agibin/`; `cp -f ./call_park_L.agi $agibin/`;
`cp -f ./call_park_W.agi $agibin/`; `cp -f ./call_park_W.agi $agibin/`;
`cp -f ./debug_speak.agi $agibin/`; `cp -f ./debug_speak.agi $agibin/`;
`cp -f ./invalid_speak.agi $agibin/`; `cp -f ./invalid_speak.agi $agibin/`;
`cp -f ./VD_hangup.agi $agibin/`; `cp -f ./park_CID.agi $agibin/`;
`cp -f ./VD_amd.agi $agibin/`; `cp -f ./VD_amd.agi $agibin/`;
`cp -f ./VD_amd_post.agi $agibin/`; `cp -f ./VD_amd_post.agi $agibin/`;
`cp -f ./VD_hangup.agi $agibin/`;
print "setting agi-bin scripts to executable...\n"; print "setting agi-bin scripts to executable...\n";
+13
View File
@@ -0,0 +1,13 @@
100001,10001,129,1,7275551213,MR,I,P,FREELY01,249 MUNDON ROAD,,,MALDON,FL,,33709,USA,M,1970-01-01,7275551212,test@test.com,nothing,COMMENTS
100002,10002,129,1,3125551213,MR,I,P,FREELY02,249 MUNDON ROAD,,,MALDON,FL,,33709,USA,M,1970-01-01,3125551212,test@test.com,nothing,COMMENTS
100003,10003,129,1,3035551213,MR,I,P,FREELY03,249 MUNDON ROAD,,,MALDON,FL,,33709,USA,M,1970-01-01,3035551212,test@test.com,nothing,COMMENTS
100004,10004,129,1,8585551213,MR,I,P,FREELY04,249 MUNDON ROAD,,,MALDON,FL,,33709,USA,M,1970-01-01,7275551212,test@test.com,nothing,COMMENTS
100005,10005,129,44,7275551213,MR,I,P,FREELY05,249 MUNDON ROAD,,,MALDON,FL,,33709,USA,M,1970-01-01,7275551212,test@test.com,nothing,COMMENTS
100006,10006,129,61,727555121,MR,I,P,FREELY06,249 MUNDON ROAD,,,MALDON,NT,,33709,USA,M,1970-01-01,7275551212,test@test.com,nothing,COMMENTS
100007,10007,129,61,727555121,MR,I,P,FREELY07,249 MUNDON ROAD,,,MALDON,NS,,33709,USA,M,1970-01-01,7275551212,test@test.com,nothing,COMMENTS
100008,10008,129,52,2485551213,MR,I,P,FREELY08,249 MUNDON ROAD,,,MALDON,FL,,33709,USA,M,1970-01-01,7275551212,test@test.com,nothing,COMMENTS
100009,10009,129,1,7275551213,MR,I,P,FREELY09,249 MUNDON ROAD,,,MALDON,FL,,33709,USA,M,1970-01-01,7275551212,test@test.com,nothing,COMMENTS
100010,10010,129,1,8585551213,MR,I,P,FREELY10,249 MUNDON ROAD,,,MALDON,FL,,33709,USA,M,1970-01-01,7275551212,test@test.com,nothing,COMMENTS
100011,10011,129,1,3035551213,MR,I,P,FREELY11,249 MUNDON ROAD,,,MALDON,FL,,33709,USA,M,1970-01-01,3035551212,test@test.com,nothing,COMMENTS
100012,10012,129,1,3125551213,MR,I,P,FREELY12,249 MUNDON ROAD,,,MALDON,FL,,33709,USA,M,1970-01-01,3125551212,test@test.com,nothing,COMMENTS
100013,10013,129,1,7275551213,MR,I,P,FREELY13,249 MUNDON ROAD,,,MALDON,FL,,33709,USA,M,1970-01-01,7275551212,test@test.com,nothing,COMMENTS
1 100001 10001 129 1 7275551213 MR I P FREELY01 249 MUNDON ROAD MALDON FL 33709 USA M 1970-01-01 7275551212 test@test.com nothing COMMENTS
2 100002 10002 129 1 3125551213 MR I P FREELY02 249 MUNDON ROAD MALDON FL 33709 USA M 1970-01-01 3125551212 test@test.com nothing COMMENTS
3 100003 10003 129 1 3035551213 MR I P FREELY03 249 MUNDON ROAD MALDON FL 33709 USA M 1970-01-01 3035551212 test@test.com nothing COMMENTS
4 100004 10004 129 1 8585551213 MR I P FREELY04 249 MUNDON ROAD MALDON FL 33709 USA M 1970-01-01 7275551212 test@test.com nothing COMMENTS
5 100005 10005 129 44 7275551213 MR I P FREELY05 249 MUNDON ROAD MALDON FL 33709 USA M 1970-01-01 7275551212 test@test.com nothing COMMENTS
6 100006 10006 129 61 727555121 MR I P FREELY06 249 MUNDON ROAD MALDON NT 33709 USA M 1970-01-01 7275551212 test@test.com nothing COMMENTS
7 100007 10007 129 61 727555121 MR I P FREELY07 249 MUNDON ROAD MALDON NS 33709 USA M 1970-01-01 7275551212 test@test.com nothing COMMENTS
8 100008 10008 129 52 2485551213 MR I P FREELY08 249 MUNDON ROAD MALDON FL 33709 USA M 1970-01-01 7275551212 test@test.com nothing COMMENTS
9 100009 10009 129 1 7275551213 MR I P FREELY09 249 MUNDON ROAD MALDON FL 33709 USA M 1970-01-01 7275551212 test@test.com nothing COMMENTS
10 100010 10010 129 1 8585551213 MR I P FREELY10 249 MUNDON ROAD MALDON FL 33709 USA M 1970-01-01 7275551212 test@test.com nothing COMMENTS
11 100011 10011 129 1 3035551213 MR I P FREELY11 249 MUNDON ROAD MALDON FL 33709 USA M 1970-01-01 3035551212 test@test.com nothing COMMENTS
12 100012 10012 129 1 3125551213 MR I P FREELY12 249 MUNDON ROAD MALDON FL 33709 USA M 1970-01-01 3125551212 test@test.com nothing COMMENTS
13 100013 10013 129 1 7275551213 MR I P FREELY13 249 MUNDON ROAD MALDON FL 33709 USA M 1970-01-01 7275551212 test@test.com nothing COMMENTS
+13
View File
@@ -0,0 +1,13 @@
100001|10001|129|1|7275551213|MR|I|P|FREELY01|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS
100002|10002|129|1|3125551213|MR|I|P|FREELY02|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|3125551212|test@test.com|nothing|COMMENTS
100003|10003|129|1|3035551213|MR|I|P|FREELY03|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|3035551212|test@test.com|nothing|COMMENTS
100004|10004|129|1|8585551213|MR|I|P|FREELY04|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS
100005|10005|129|44|7275551213|MR|I|P|FREELY05|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS
100006|10006|129|61|727555121|MR|I|P|FREELY06|249 MUNDON ROAD|||MALDON|NT||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS
100007|10007|129|61|727555121|MR|I|P|FREELY07|249 MUNDON ROAD|||MALDON|NS||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS
100008|10008|129|52|2485551213|MR|I|P|FREELY08|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS
100009|10009|129|1|7275551213|MR|I|P|FREELY09|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS
100010|10010|129|1|8585551213|MR|I|P|FREELY10|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS
100011|10011|129|1|3035551213|MR|I|P|FREELY11|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|3035551212|test@test.com|nothing|COMMENTS
100012|10012|129|1|3125551213|MR|I|P|FREELY12|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|3125551212|test@test.com|nothing|COMMENTS
100013|10013|129|1|7275551213|MR|I|P|FREELY13|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS
Binary file not shown.
+5
View File
@@ -394,3 +394,8 @@ AVAILABLE EXTENSIONS|EXTENSOES DISPONIVEIS|
edit|editar| edit|editar|
FAVORITES|FAVORITOS| FAVORITES|FAVORITOS|
### END translation phrases through 1.1.11 release ### ### END translation phrases through 1.1.11 release ###
Search Existing Leads|Ligações Existentes Da Busca|
This option if checked will attempt to find the phone number in the system before inserting it as a new lead|Esta opção se verificado tentará encontrar o número de telefone no sistema antes de introduzi-lo como uma ligação nova|
Finish Wrapup and Move On|Revestimento Wrapup e movimento sobre|
seconds remaining in wrapup|segundos restantes no wrapup|
Call Wrapup:|Chamada Wrapup:|
+46 -14
View File
@@ -931,20 +931,20 @@ AGENT |ΧΕΙΡΙΣΤΗΣ|
SERVER |ΔΙΑΚΟΜΙΣΤΗΣ | SERVER |ΔΙΑΚΟΜΙΣΤΗΣ |
### END translation phrases through 1.1.11 release ### ### END translation phrases through 1.1.11 release ###
### BEGIN translation 1.1.12 release ### ### BEGIN translation 1.1.12 release ###
Drop Call Seconds -</B> The number of seconds from the time the customer line is picked up until the call is considered a DROP, only applies to outbound calls|Δευτερ. Εγκαταλ. Κλήσης -</B> Ο αριθμός των δευτερολέπτων από την στιγμή που ο πελάτης σηκώνει το τηλ μέχρι η κλήση να θεωρηθεί εγκαταλειμένη. Μόνο για εξερχόμενες κλήσεις | Drop Call Seconds -<\/B> The number of seconds from the time the customer line is picked up until the call is considered a DROP, only applies to outbound calls|Δευτερ. Εγκαταλ. Κλήσης -</B> Ο αριθμός των δευτερολέπτων από την στιγμή που ο πελάτης σηκώνει το τηλ μέχρι η κλήση να θεωρηθεί εγκαταλειμένη. Μόνο για εξερχόμενες κλήσεις |
Safe Harbor Message -</B> If set to Y will play a message to customer after the Drop Call Seconds timeout is reached without being transferred to an agent. This setting will override sending to a voicemail box if this is set to Y|Μήνυμα Ασφαλούς Φύλαξης -</B> Εάν είναι Υ θα παίξει ένα μήνυμα στον πελάτη μετά το πέρας των δευτερολέπτων ασφαλούς εγκατάλειψης, χωρίς να μεταφερθεί σε έναν χειριστή. Αυτή η επιλογή υπερβαίνει την αποστολή σε θυρίδα ηχητικού μηνύματος εάν είναι Υ| Safe Harbor Message -<\/B> If set to Y will play a message to customer after the Drop Call Seconds timeout is reached without being transferred to an agent. This setting will override sending to a voicemail box if this is set to Y|Μήνυμα Ασφαλούς Φύλαξης -</B> Εάν είναι Υ θα παίξει ένα μήνυμα στον πελάτη μετά το πέρας των δευτερολέπτων ασφαλούς εγκατάλειψης, χωρίς να μεταφερθεί σε έναν χειριστή. Αυτή η επιλογή υπερβαίνει την αποστολή σε θυρίδα ηχητικού μηνύματος εάν είναι Υ|
Safe Harbor Exten -</B> This is the dialplan extension that the desired Safe Harbor audio file is located at on your server|Εσωτ.σύνδεση Ασφαλούς Φύλαξης -</B> Αυτή είναι η εσωτ.σύνδεση του πλάνου κλήσεων, όπου βρίσκεται το ηχητικό αρχείο της Ασφαλής Φύλαξης στον διακομιστή| Safe Harbor Exten -<\/B> This is the dialplan extension that the desired Safe Harbor audio file is located at on your server|Εσωτ.σύνδεση Ασφαλούς Φύλαξης -</B> Αυτή είναι η εσωτ.σύνδεση του πλάνου κλήσεων, όπου βρίσκεται το ηχητικό αρχείο της Ασφαλής Φύλαξης στον διακομιστή|
Drop Message -</B> If set to Y will play a message to customer after the Drop Call Seconds timeout is reached without being transferred to an agent. This setting will override sending to a voicemail box if this is set to Y|Μήνυμα Εγκατάλειψης -</B> Εάν είναι Υ θα παίξει ένα μήνυμα στον πελάτη μετά το πέρας των δευτερολέπτων Εγκατάλειψης, χωρίς να μεταφερθεί σε έναν χειριστή. Αυτή η επιλογή υπερβαίνει την αποστολή σε θυρίδα ηχητικού μηνύματος εάν είναι Υ| Drop Message -<\/B> If set to Y will play a message to customer after the Drop Call Seconds timeout is reached without being transferred to an agent. This setting will override sending to a voicemail box if this is set to Y|Μήνυμα Εγκατάλειψης -</B> Εάν είναι Υ θα παίξει ένα μήνυμα στον πελάτη μετά το πέρας των δευτερολέπτων Εγκατάλειψης, χωρίς να μεταφερθεί σε έναν χειριστή. Αυτή η επιλογή υπερβαίνει την αποστολή σε θυρίδα ηχητικού μηνύματος εάν είναι Υ|
Drop Exten -</B> This is the dialplan extension that the desired Dropped call audio file is located at on your server|Εσωτ.Σύνδεση Εγκατάλειψης -</B> Αυτή είναι η εσωτ.σύνδεση του πλάνου κλήσεων, όπου βρίσκεται το ηχητικό αρχείο της Εγκατάλειψης στον διακομιστή| Drop Exten -<\/B> This is the dialplan extension that the desired Dropped call audio file is located at on your server|Εσωτ.Σύνδεση Εγκατάλειψης -</B> Αυτή είναι η εσωτ.σύνδεση του πλάνου κλήσεων, όπου βρίσκεται το ηχητικό αρχείο της Εγκατάλειψης στον διακομιστή|
Call Time ID -</B> This is the short name of a Vicidial Call Time Definition. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 10 characters, minimum of 2 characters|ID Χρόνου Κλήσης -</Β> Αυτό είναι το σύντομο όνομα του Ορισμού Χρόνου Κλήσης. Πρέπει να είναι ένα μοναδικό στοιχείο. Μην χρησιμοποιηθούν διαστήματα ή στίξεις. 2-10 χαρακτήρες| Call Time ID -<\/B> This is the short name of a Vicidial Call Time Definition. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 10 characters, minimum of 2 characters|ID Χρόνου Κλήσης -</Β> Αυτό είναι το σύντομο όνομα του Ορισμού Χρόνου Κλήσης. Πρέπει να είναι ένα μοναδικό στοιχείο. Μην χρησιμοποιηθούν διαστήματα ή στίξεις. 2-10 χαρακτήρες|
Call Time Name -</B> This is a more descriptive name of the Call Time Definition. This is a short summary of the Call Time definition. max 30 characters, minimum of 2 characters|Ονομα Χρόνου Κλήσης -</B> Αυτό είναι ένα πιο περιγραφικό όνομα του Ορισμού Χρόνου Κλήσης. Είναι μία σύντομη περιγραφή. 2-30 χαρακτήρεςCall Time Comments -</B> This is where you can place comments for a Vicidial Call Time Definition such as -10am to 4pm with extra call state restrictions-. max 255 characters|Σχόλια Χρόνου Κλήσης -</B> Μέχρι 255 χαρακτήρες| Call Time Name -<\/B> This is a more descriptive name of the Call Time Definition. This is a short summary of the Call Time definition. max 30 characters, minimum of 2 characters|Ονομα Χρόνου Κλήσης -</B> Αυτό είναι ένα πιο περιγραφικό όνομα του Ορισμού Χρόνου Κλήσης. Είναι μία σύντομη περιγραφή. 2-30 χαρακτήρεςCall Time Comments -</B> This is where you can place comments for a Vicidial Call Time Definition such as -10am to 4pm with extra call state restrictions-. max 255 characters|Σχόλια Χρόνου Κλήσης -</B> Μέχρι 255 χαρακτήρες|
Default Start and Stop Times -</B> This is the default time that calling will be allowed to be started or stopped within this call time definition if the day-of-the-week start time is not defined. 0 is midnight. To prevent calling completely set this field to 2400 and set the Default Stop time to 2400. To allow calling 24 hours a day set the start time to 0 and the stop time to 2400|Προκαθορισμένοι Χρόνοι Εκκίνησης και Παύσης -</B> Αυτός είναι ο προκαθορισμένος χρόνος όπου θα επιτρέπετε οι κλήσεις εάν δεν έχει οριστεί ο χρόνος εκκίνησης της ημέρας-της-εβδομάδας. 0 είναι μεσάνυχτα. Εάν δεν θέλετε καμία κλήση θέστε αυτό το πεδίο σε 2400 και το προκαθορισμένο χρόνο Παύσης σε 2400. Για να επιτρέψετε την 24ωρη κλήση την ημέρα θέστε σε 0 τον χρόνο εκκίνησης και σε 2400 τον χρόνο παύσηςWeekday Start and Stop Times -</B> These are the custom times per day that can be set for the call time definition. same rules apply as with the Default start and stop times|Εβδομαδιαίοι Χρόνοι Εκκίνησης και Παύσης -</B> Αυτοί είναι προσαρμόσιμοι χρόνοι ανά ημέρα για τον ορισμό χρόνων κλήσεων| Default Start and Stop Times -<\/B> This is the default time that calling will be allowed to be started or stopped within this call time definition if the day-of-the-week start time is not defined. 0 is midnight. To prevent calling completely set this field to 2400 and set the Default Stop time to 2400. To allow calling 24 hours a day set the start time to 0 and the stop time to 2400|Προκαθορισμένοι Χρόνοι Εκκίνησης και Παύσης -</B> Αυτός είναι ο προκαθορισμένος χρόνος όπου θα επιτρέπετε οι κλήσεις εάν δεν έχει οριστεί ο χρόνος εκκίνησης της ημέρας-της-εβδομάδας. 0 είναι μεσάνυχτα. Εάν δεν θέλετε καμία κλήση θέστε αυτό το πεδίο σε 2400 και το προκαθορισμένο χρόνο Παύσης σε 2400. Για να επιτρέψετε την 24ωρη κλήση την ημέρα θέστε σε 0 τον χρόνο εκκίνησης και σε 2400 τον χρόνο παύσηςWeekday Start and Stop Times -</B> These are the custom times per day that can be set for the call time definition. same rules apply as with the Default start and stop times|Εβδομαδιαίοι Χρόνοι Εκκίνησης και Παύσης -</B> Αυτοί είναι προσαρμόσιμοι χρόνοι ανά ημέρα για τον ορισμό χρόνων κλήσεων|
State Call Time Definitions -</B> This is the list of State specific call time definitions that are followed in this Call Time Definition|Ορισμοί Χρόνων Κλήσεων Καταστάσεων -</B> Είναι η λίστα συγκεκριμένων Ορισμών Χρόνων Κλήσεων Καταστάσεων| State Call Time Definitions -<\/B> This is the list of State specific call time definitions that are followed in this Call Time Definition|Ορισμοί Χρόνων Κλήσεων Καταστάσεων -</B> Είναι η λίστα συγκεκριμένων Ορισμών Χρόνων Κλήσεων Καταστάσεων|
State Call Time State -</B> This is the two letter code for the state that this calling time definition is for. For this to be in effect the local call time that is set in the campaign must have this state call time record in it as well as all of the leads having two letter state codes in them|Κατάσταση Χρόνου Κλήσης Κατάστασης -</B> Αυτό είναι ο δύο γραμμάτων κωδικός για την κατάσταση όπου ο ορισμός χρόνου κλήσης είναι για. Θα πρέπει και οι Οδηγοί της εκστρατείας να έχουν δύο γράμματα κωδικούς κατάστασης για τον χρόνο κλήσης κατάστασης| State Call Time State -<\/B> This is the two letter code for the state that this calling time definition is for. For this to be in effect the local call time that is set in the campaign must have this state call time record in it as well as all of the leads having two letter state codes in them|Κατάσταση Χρόνου Κλήσης Κατάστασης -</B> Αυτό είναι ο δύο γραμμάτων κωδικός για την κατάσταση όπου ο ορισμός χρόνου κλήσης είναι για. Θα πρέπει και οι Οδηγοί της εκστρατείας να έχουν δύο γράμματα κωδικούς κατάστασης για τον χρόνο κλήσης κατάστασης|
Delete Call Times -</B> This option allows the user to be able to delete vicidial call times records and vicidial state call times records from the system|Διαγραφή Χρόνων Κλήσεων -</B> Αυτή η επιλογή επιτρέπει στον χρήστη να διαγράφει εγγραφές χρόνων κλήσεων και καταστάσεων από το σύστημα| Delete Call Times -<\/B> This option allows the user to be able to delete vicidial call times records and vicidial state call times records from the system|Διαγραφή Χρόνων Κλήσεων -</B> Αυτή η επιλογή επιτρέπει στον χρήστη να διαγράφει εγγραφές χρόνων κλήσεων και καταστάσεων από το σύστημα|
Modify Call Times -</B> This option allows the user to view and modify the call times and state call times records. A user doesn't need this option enabled if they only need to change the call times option on the campaigns screen|Τροποποίηση Χρόνων Κλήσεων -</B> Αυτή η επιλογή επιτρέπει στον χρήστη εμφανίσει και να τροποποιήσει τους χρόνους κλήσεων και τις εγγραφές χρόνων κλήσεων κατάστασης. Δεν χρειάζεται να είναι ενεργή αυτή η επιλογή εάν μόνο χρειάζεται η αλλαγή της επιλογής των χρόνων κλήσεων στην οθόνη των εκστρατειών| Modify Call Times -<\/B> This option allows the user to view and modify the call times and state call times records. A user doesn't need this option enabled if they only need to change the call times option on the campaigns screen|Τροποποίηση Χρόνων Κλήσεων -</B> Αυτή η επιλογή επιτρέπει στον χρήστη εμφανίσει και να τροποποιήσει τους χρόνους κλήσεων και τις εγγραφές χρόνων κλήσεων κατάστασης. Δεν χρειάζεται να είναι ενεργή αυτή η επιλογή εάν μόνο χρειάζεται η αλλαγή της επιλογής των χρόνων κλήσεων στην οθόνη των εκστρατειών|
Wrapup Seconds -</B> The number of seconds to force an agent to wait before allowing them to receive or dial another call. The timer begins as soon as an agent hangs up on their customer - or in the case of alternate number dialing when the agent finishes the lead - Default is 0 seconds. If the timer runs out before the agent has dispositioned the call, the agent still will NOT move on to the next call until they select a disposition|Δευτερ. Τυλίγματος -</B> Ο αριθμός των δευτερολέπτων που αναγκάζει έναν χειριστή να περιμένει πριν του επιτραπεί να λάβει ή να κάνει άλλη κλήση. Ο χρόνος ξεκινάει μόλις τερματίσει μία κλήση. Προκαθορισμένα είναι 0 δευτερ. Αν ο χρόνος περάσει πριν ο χειριστής τερματίσει την κλήση, δεν θα μετακινηθεί στην άλλη κλήση πριν συμβεί αυτό| Wrapup Seconds -<\/B> The number of seconds to force an agent to wait before allowing them to receive or dial another call. The timer begins as soon as an agent hangs up on their customer - or in the case of alternate number dialing when the agent finishes the lead - Default is 0 seconds. If the timer runs out before the agent has dispositioned the call, the agent still will NOT move on to the next call until they select a disposition|Δευτερ. Τυλίγματος -</B> Ο αριθμός των δευτερολέπτων που αναγκάζει έναν χειριστή να περιμένει πριν του επιτραπεί να λάβει ή να κάνει άλλη κλήση. Ο χρόνος ξεκινάει μόλις τερματίσει μία κλήση. Προκαθορισμένα είναι 0 δευτερ. Αν ο χρόνος περάσει πριν ο χειριστής τερματίσει την κλήση, δεν θα μετακινηθεί στην άλλη κλήση πριν συμβεί αυτό|
Wrapup Message -</B> This is a campaign-specific message to be displayed on the wrapup screen if wrapup seconds is set|Μήνυμα Τυλίγματος -</B> Αυτό είναι ένα συγκεκριμένο μήνυμα εκστρατείας που εμφανίζεται στην οθόνη τυλίγματος όταν έχει οριστεί ο χρόνος τυλίγματος| Wrapup Message -<\/B> This is a campaign-specific message to be displayed on the wrapup screen if wrapup seconds is set|Μήνυμα Τυλίγματος -</B> Αυτό είναι ένα συγκεκριμένο μήνυμα εκστρατείας που εμφανίζεται στην οθόνη τυλίγματος όταν έχει οριστεί ο χρόνος τυλίγματος|
You are not authorized to view this page. Please go back|Δεν έχετε το δικαίωμα για να δείτε την σελίδα. Παρακαλώ επιστρέψτε| You are not authorized to view this page. Please go back|Δεν έχετε το δικαίωμα για να δείτε την σελίδα. Παρακαλώ επιστρέψτε|
Day and time options will appear once you have created the Call Time Definition|Οι επιλογές Ημέρας και ώρας θα εμφανιστούν όταν θα δημιουργήσετε τον Ορισμό Χρόνου Κλήσης| Day and time options will appear once you have created the Call Time Definition|Οι επιλογές Ημέρας και ώρας θα εμφανιστούν όταν θα δημιουργήσετε τον Ορισμό Χρόνου Κλήσης|
State Call Time ID, name and state must be at least 2 characters in length|Το ID Χρόνου Κλήσης Κατάστασης, το όνομα και η κατάσταση πρέπει να είναι τουλάχιστον 2 χαρακτήρες | State Call Time ID, name and state must be at least 2 characters in length|Το ID Χρόνου Κλήσης Κατάστασης, το όνομα και η κατάσταση πρέπει να είναι τουλάχιστον 2 χαρακτήρες |
@@ -1032,3 +1032,35 @@ Wrapup Message:|Μήνυμα Τυλίγματος:|
Alt Number Dialing|Κλήση Εναλ Αριθμού| Alt Number Dialing|Κλήση Εναλ Αριθμού|
no active lists selected for this campaign|δεν έχουν επιλεχθεί ενεργές λίστες για την εκστρατεία| no active lists selected for this campaign|δεν έχουν επιλεχθεί ενεργές λίστες για την εκστρατεία|
Realtime Screen|Πραγματικού Χρόνου Οθόνη| Realtime Screen|Πραγματικού Χρόνου Οθόνη|
Allowable Inbound Groups -<\/B> Here is where you select the inbound groups you want agents in this CLOSER campaign to be able to take calls from. It is important for BLENDED inbound/outbound campaigns only to select the inbound groups that are used for agents in this campaign|Επιτρεπόμενες εισερχόμενες ομάδες -</B> εδώ είναι όπου εσείςεπιλέγει τις εισερχόμενες ομάδες που θέλετε τους πράκτορες σεαυτήν την ΠΙΟ ΣΤΕΝΉ εκστρατεία για να είστε σε θέση για ναπάρετε τις κλήσεις από. Είναι σημαντικό για ΣΥΝΔΥΑΣΜΕΝΟΣπλησίον/εξερχόμενες εκστρατείες για να επιλέξει μόνο τιςεισερχόμενες ομάδες που χρησιμοποιούνται για τους πράκτορες σεαυτήν την εκστρατεία|
Allowed Inbound Groups|Εισερχόμενες ομάδες|
ADD NUMBER TO DNC|ΠΡΟΣΘΕΣΤΕ ΤΟΝ ΑΡΙΘΜΟ ΣΕ DNC|
ADD A NUMBER TO THE DNC LIST|ΠΡΟΣΘΕΣΤΕ έναν ΑΡΙΘΜΟ στον ΚΑΤΑΛΟΓΟ DNC|
Add New DNC|Προσθέστε νέο DNC|
Phone Number|Τηλεφωνικός αριθμός|
VICIDIAL DNC List -<\/B> This Do Not Call list contains every lead that has been set to a status of DNC in the system. Through the LISTS - ADD NUMBER TO DNC page you are able to manually add a number to this list so that it will not be called by campaigns that use the internal DNC list|Κατάλογος VICIDIAL DNC -</B> αυτό δεν καλεί τον κατάλογοπεριέχει κάθε μόλυβδο που έχει τεθεί μια θέση DNC στοσύστημα. Μέσω των ΚΑΤΑΛΟΓΩΝ - ΠΡΟΣΘΕΣΤΕ τον ΑΡΙΘΜΟ στη σελίδαDNC που είστε σε θέση να προσθέσετε με το χέρι έναν αριθμό σεαυτόν τον κατάλογο έτσι ώστε δεν θα κληθεί από τις εκστρατείεςπου χρησιμοποιούν τον εσωτερικό κατάλογο DNC|
DNC NOT ADDED - This phone number is already in the Do Not Call List|DNC ΠΡΟΣΤΙΘΈΜΕΝΟ - αυτός ο τηλεφωνικός αριθμός είναι ήδη δενκαλεί τον κατάλογο|
DNC ADDED|DNC ΠΡΟΣΤΙΘΈΜΕΝΟ|
Use Internal DNC List -<\/B> This defines whether this campaign is to filter leads against the Internal DNC list. If it is set to Y, the hopper will look for each phone number in the DNC list before placing it in the hopper. If it is in the DNC list then it will change that lead status to DNCL so it cannot be dialed. Default is N|Εσωτερικός κατάλογος DNC χρήσης -</B> αυτό καθορίζει εάν αυτή ηεκστρατεία είναι στους μολύβδους φίλτρων ενάντια στον εσωτερικόκατάλογο DNC. Εάν τίθεται το Υ, η χοάνη θα ψάξει κάθετηλεφωνικό αριθμό στον κατάλογο DNC πρίν τοποθετεί τον στηχοάνη. Εάν είναι στον κατάλογο DNC έπειτα θα αλλάξει ότιθέση μολύβδου σε DNCL έτσι που δεν μπορεί να σχηματιστεί. Ηπροεπιλογή είναι ν|
Use Internal DNC List|Εσωτερικός κατάλογος DNC χρήσης|
Campaign CallerID -<\/B> This field allows for the sending of a custom callerid number on the outbound calls. This is the number that would show up on the callerid of the person you are calling. The default is UNKNOWN. If you are using T1 or E1s to dial out this option is only available if you are using PRIs - ISDN T1s or E1s - that have the custom callerid feature turned on, this will not work with Robbed-bit service(RBS) circuits. This will also work through most VOIP(SIP or IAX trunks) providers that allow dynamic outbound callerID. The custom callerID only applies to calls placed for the VICIDIAL campaign directly, any 3rd party calls or transfers will not send the custom callerID. NOTE: Sometimes putting UNKNOWN or PRIVATE in the field will yield the sending of your default callerID number by your carrier with the calls. You may want to test this and put 0000000000 in the callerid field instead if you do not want to send you CallerID|Εκστρατεία CallerID -</B> αυτός ο τομέας επιτρέπει την αποστολήενός αριθμού συνήθειας callerid στις εξερχόμενες κλήσεις.Αυτό είναι ο αριθμός που θα παρουσίαζε στο callerid τουπροσώπου που καλείτε. Η προεπιλογή είναι ΑΓΝΩΣΤΗ. Εάνχρησιμοποιείτε το T1 ή Eί να σχηματίσει έξω αυτήν τηνεπιλογή είναι μόνο διαθέσιμος εάν χρησιμοποιείτε PRIs -ISDN Tί ή Eί - που ανοίγουν το χαρακτηριστικό γνώρισμασυνήθειας callerid, αυτό δεν θα λειτουργήσει με τα κυκλώματαυπηρεσιών ληστεύω-κομματιών (RBS). Αυτό θα λειτουργήσειεπίσης μέσω των προμηθευτών των περισσότερων κορμών VOIP(SIPή IAX) που επιτρέπουν δυναμικό εξερχόμενο callerID. Ησυνήθεια callerID ισχύει μόνο για τις κλήσεις πουτοποθετούνται για την εκστρατεία VICIDIAL άμεσα, οποιεσδήποτεκλήσεις ή μεταφορές 3$ων συμβαλλόμενων μερών δεν θα στείλουν τησυνήθεια callerID. ΣΗΜΕΙΩΣΗ: Μερικές φορές να βάλει ΑΓΝΩΣΤΗ ήΙΔΙΩΤΙΚΗ στον τομέα θα παραγάγει την αποστολή του αριθμούπροεπιλογής σας callerID από το μεταφορέα σας με τις κλήσεις.Μπορείτε να θελήσετε να εξετάσετε αυτό και να υποβάλετε0000000000 ο τομέας callerid αντ' αυτού εάν δεν θέλετε νασας στείλετε CallerID|
Login -<\/B> The login used for the phone user to login to the client applications|Σύνδεση -</B> η σύνδεση που χρησιμοποιείται για τον τηλεφωνικό χρήστηστη σύνδεση στις εφαρμογές πελατών|
Password -<\/B> The password used for the phone user to login to the client applications|Κωδικός πρόσβασης -</B> ο κωδικός πρόσβασης που χρησιμοποιείται γιατον τηλεφωνικό χρήστη στη σύνδεση στις εφαρμογές πελατών|
New Campaign Lead Recycle Addition|Νέα ανακύκλωσης προσθήκη μολύβδου εκστρατείας|
Modify Campaign Lead Recycle|Τροποποιήστε το μόλυβδο εκστρατείας ανακύκλωσης|
Through the use of lead recycling, you can call specific statuses of leads again at a specified interval without resetting the entire list. Lead recycling is campaign-specific and does not have to be a selected dialable status in your campaign. The attempt delay field is the number of seconds until the lead can be placed back in the hopper, this number must be at least 120 seconds. The attempt maximum field is the maximum number of times that a lead of this status can be attempted before the list needs to be reset, this number can be from 1 to 10. You can activate and deactivate a lead recycle entry with the provided links. This feature only works in auto-dial mode, where dial level is greater than 0|Μέσω της χρήσης της ανακύκλωσης μολύβδου, μπορείτε να καλέσετετις συγκεκριμένες θέσεις των μολύβδων πάλι σε ένα διευκρινισμένοδιάστημα χωρίς επαναρύθμιση του ολόκληρου καταλόγου. Ηανακύκλωση μολύβδου είναι εκστρατεία-συγκεκριμένη και δεν ειναιαπαραίτητο να είναι μια επιλεγμένη dialable θέση στηνεκστρατεία σας. Ο τομέας καθυστέρησης προσπάθειας είναι οαριθμός δευτερολέπτων έως ότου μπορεί ο μόλυβδος να τοποθετηθείπίσω στη χοάνη, αυτός ο αριθμός πρέπει να είναι τουλάχιστον120 δευτερόλεπτα. Ο μέγιστος τομέας προσπάθειας είναι ομέγιστος αριθμός χρόνων ότι ένας μόλυβδος αυτής της θέσηςμπορεί να προσπαθηθεί προτού να πρέπει να επαναρυθμιστεί οκατάλογος, αυτός ο αριθμός μπορεί να είναι από 1 έως 10.Μπορείτε να ενεργοποιήσετε και να απενεργοποιήσετε μια ανακύκλωσηςείσοδο μολύβδου με τις παρεχόμενες συνδέσεις. Αυτό τοχαρακτηριστικό γνώρισμα λειτουργεί μόνο στον τρόποαυτόματος-πινάκων, όπου το επίπεδο πινάκων είναι μεγαλύτεροαπό 0|
CAMPAIGN LEAD RECYCLE NOT ADDED - there is already a lead-recycle for this campaign with this status|ΑΝΑΚΥΚΛΩΣΗΣ ΜΟΛΥΒΔΟΥ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΙΘΕΜΕΝΟΣ - υπάρχει ήδη έναςμόλυβδος-ανακύκλωσης για αυτήν την εκστρατεία με αυτήν την θέση|
CAMPAIGN LEAD RECYCLE NOT ADDED - Please go back and look at the data you entered|ΑΝΑΚΥΚΛΩΣΗΣ ΜΟΛΥΒΔΟΥ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΙΘΕΜΕΝΟΣ - παρακαλώ επιστρέψτεκαι εξετάστε τα στοιχεία που εισαγάγατε|
status must be between 1 and 6 characters in length|η θέση πρέπει να είναι μεταξύ 1 και 6 χαρακτήρων στο μήκος|
attempt delay must be at least 120 seconds|η καθυστέρηση προσπάθειας πρέπει να είναι τουλάχιστον 120δευτερόλεπτα|
maximum attempts must be from 1 to 10|οι μέγιστες προσπάθειες πρέπει να είναι από 1 έως 10|
CAMPAIGN LEAD RECYCLE ADDED|ΑΝΑΚΥΚΛΩΣΗΣ ΜΟΛΥΒΔΟΥ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΙΘΕΜΕΝΟΣ|
CAMPAIGN LEAD RECYCLE NOT DELETED|ΑΝΑΚΥΚΛΩΣΗΣ ΜΟΛΥΒΔΟΥ ΕΚΣΤΡΑΤΕΙΑΣ ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ|
CAMPAIGN LEAD RECYCLE DELETED|ΑΝΑΚΥΚΛΩΣΗΣ ΜΟΛΥΒΔΟΥ ΕΚΣΤΡΑΤΕΙΑΣ ΠΟΥ ΔΙΑΓΡΑΦΕΤΑΙ|
Delete Lead Recycle|Διαγράψτε το μόλυβδο ανακύκλωσης|
LEAD RECYCLING WITHIN THIS CAMPAIGN|ΑΝΑΚΥΚΛΩΣΗ ΜΟΛΥΒΔΟΥ ΜΕΣΑ ΣΕ ΑΥΤΗΝ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ|
ATTEMPT DELAY|ΚΑΘΥΣΤΕΡΗΣΗ ΠΡΟΣΠΑΘΕΙΑΣ|
ATTEMPT MAXIMUM|ΜΕΓΙΣΤΟ ΠΡΟΣΠΑΘΕΙΑΣ|
ADD NEW CAMPAIGN LEAD RECYCLE|ΠΡΟΣΘΕΣΤΕ ΤΟ ΝΕΟ ΜΟΛΥΒΔΟ ΕΚΣΤΡΑΤΕΙΑΣ ΑΝΑΚΥΚΛΩΣΗΣ|
Attempt Delay|Καθυστέρηση προσπάθειας|
Attempt Maximum|Μέγιστο προσπάθειας|
+1 -1
View File
@@ -397,7 +397,7 @@ AVAILABLE EXTENSIONS|EXTENSIONES DISPONIBLES|
FAVORITES| FAVORITOS| FAVORITES| FAVORITOS|
### END translation phrases through 1.1.11 release ### ### END translation phrases through 1.1.11 release ###
Search Existing Leads|Plomos Existentes De la Búsqueda| Search Existing Leads|Plomos Existentes De la Búsqueda|
This option if checked will attempt to find the phone number in the system before inserting it as a new lead|Esta opciΓ³n si estΓ‘ comprobada procurarΓ‘ encontrar el nΓΊmero de| This option if checked will attempt to find the phone number in the system before inserting it as a new lead|Esta opción si está comprobada procurará encontrar el número de teléfono en el sistema antes de insertarlo como nuevo plomo|
Finish Wrapup and Move On|Final Wrapup y movimiento encendido| Finish Wrapup and Move On|Final Wrapup y movimiento encendido|
seconds remaining in wrapup|segundos restantes en wrapup| seconds remaining in wrapup|segundos restantes en wrapup|
Call Wrapup:|Llamada Wrapup:| Call Wrapup:|Llamada Wrapup:|
+60 -31
View File
@@ -933,32 +933,32 @@ Column|Columna|
AGENT |AGENTE | AGENT |AGENTE |
SERVER |SERVIDOR | SERVER |SERVIDOR |
### END translation phrases through 1.1.11 release ### ### END translation phrases through 1.1.11 release ###
Drop Call Seconds -<\/B> The number of seconds from the time the customer line is picked up until the call is considered a DROP, only applies to outbound calls|Segundos de la llamada de la gota - el nΓΊmero de segundos a partir| Drop Call Seconds -<\/B> The number of seconds from the time the customer line is picked up until the call is considered a DROP, only applies to outbound calls|Segundos de la llamada de la gota -</B> el número de segundos a partirdel tiempo que la línea de cliente se escoge encima de hasta que lallamada se considera una GOTA, sólo se aplica a las llamadas desalida|
Safe Harbor Message -<\/B> If set to Y will play a message to customer after the Drop Call Seconds timeout is reached without being transferred to an agent. This setting will override sending to a voicemail box if this is set to Y|Mensaje seguro del puerto - si el sistema a Y juega un mensaje al| Safe Harbor Message -<\/B> If set to Y will play a message to customer after the Drop Call Seconds timeout is reached without being transferred to an agent. This setting will override sending to a voicemail box if this is set to Y|seguro puerto mensaje -</B> si fijar y juego uno mensaje clientedespués gota llamar segundo descanso ser alcanzar sin ser transferiruno agente. _ este fijar eliminar sending uno voicemail caja si esteser fijar y|
Safe Harbor Exten -<\/B> This is the dialplan extension that the desired Safe Harbor audio file is located at on your server|Puerto seguro Exten - Γ©sta es la extensiΓ³n dialplan que el archivo| Safe Harbor Exten -<\/B> This is the dialplan extension that the desired Safe Harbor audio file is located at on your server|seguro puerto Exten -</B> este ser dialplan extensión que desear seguropuerto audio archivo ser localizar en en su servidor|
Drop Message -<\/B> If set to Y will play a message to customer after the Drop Call Seconds timeout is reached without being transferred to an agent. This setting will override sending to a voicemail box if this is set to Y|Mensaje de la gota - si el sistema a Y juega un mensaje al cliente| Drop Message -<\/B> If set to Y will play a message to customer after the Drop Call Seconds timeout is reached without being transferred to an agent. This setting will override sending to a voicemail box if this is set to Y|Mensaje de la gota -</B> si el sistema a Y juega un mensaje al clientedespués de que el descanso de los segundos de la llamada de la gotase alcance sin la transferencia a un agente. Este ajuste eliminaráenviar a una caja del voicemail si esto se fija a Y|
Drop Exten -<\/B> This is the dialplan extension that the desired Dropped call audio file is located at on your server|Gota Exten - Γ©sta es la extensiΓ³n dialplan que el archivo audio| Drop Exten -<\/B> This is the dialplan extension that the desired Dropped call audio file is located at on your server|Gota Exten -</B> ésta es la extensión dialplan que el archivo audiocaído deseado de la llamada está situado en en su servidor|
Call Time ID -<\/B> This is the short name of a Vicidial Call Time Definition. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 10 characters, minimum of 2 characters|IdentificaciΓ³n del tiempo de la llamada - Γ©ste es el nombre corto de| Call Time ID -<\/B> This is the short name of a Vicidial Call Time Definition. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 10 characters, minimum of 2 characters|Identificación del tiempo de la llamada -</B> éste es el nombre corto deuna definición del tiempo de la llamada de Vicidial. Éste necesitaser un identificador único. No utilice ningunos espacios opuntuación para los caracteres de este máximo 10 del campo, mínimode 2 caracteres|
Call Time Name -<\/B> This is a more descriptive name of the Call Time Definition. This is a short summary of the Call Time definition. max 30 characters, minimum of 2 characters|Nombre del tiempo de la llamada - Γ©ste es un nombre mΓ‘s descriptivo| Call Time Name -<\/B> This is a more descriptive name of the Call Time Definition. This is a short summary of the Call Time definition. max 30 characters, minimum of 2 characters|Nombre del tiempo de la llamada -</B> éste es un nombre más descriptivode la definición del tiempo de la llamada. Éste es un resumen cortode los caracteres del máximo 30 de la definición del tiempo de lallamada, mínimo de 2 caracteres|
Call Time Comments -<\/B> This is where you can place comments for a Vicidial Call Time Definition such as -10am to 4pm with extra call state restrictions-. max 255 characters|El tiempo de la llamada comenta - aquΓ­ es donde usted puede poner los| Call Time Comments -<\/B> This is where you can place comments for a Vicidial Call Time Definition such as -10am to 4pm with extra call state restrictions-. max 255 characters|El tiempo de la llamada comenta -</B> aquí es donde usted puede poner loscomentarios para una definición del tiempo de la llamada de Vicidialtal como -10am hasta los 4pm con restricciones adicionales del estadode la llamada -. los caracteres del máximo 255|
Default Start and Stop Times -<\/B> This is the default time that calling will be allowed to be started or stopped within this call time definition if the day-of-the-week start time is not defined. 0 is midnight. To prevent calling completely set this field to 2400 and set the Default Stop time to 2400. To allow calling 24 hours a day set the start time to 0 and the stop time to 2400|Tiempos del comienzo y de parada del defecto - Γ©ste es el tiempo de| Default Start and Stop Times -<\/B> This is the default time that calling will be allowed to be started or stopped within this call time definition if the day-of-the-week start time is not defined. 0 is midnight. To prevent calling completely set this field to 2400 and set the Default Stop time to 2400. To allow calling 24 hours a day set the start time to 0 and the stop time to 2400|Tiempos del comienzo y de parada del defecto -</B> éste es el tiempo dedefecto paran que el llamar será permitido que sea comenzado o dentrode esta definición del tiempo de la llamada si la hora de salida dela di'a-de-$$$-SEMANA no se define. 0 es medianoche. Evitar el llamarfijó totalmente este campo a 2400 y fijó el tiempo de parada deldefecto a 2400. Permitir el llamar 24 horas al día fijó la hora desalida a 0 y el tiempo de parada a 2400|
Weekday Start and Stop Times -<\/B> These are the custom times per day that can be set for the call time definition. same rules apply as with the Default start and stop times|Tiempos del comienzo y de parada del dΓ­a laborable - Γ©stos son los| Weekday Start and Stop Times -<\/B> These are the custom times per day that can be set for the call time definition. same rules apply as with the Default start and stop times|Tiempos del comienzo y de parada del día laborable -</B> éstos son lostiempos de encargo por el día que se puede fijar para la definicióndel tiempo de la llamada que las mismas reglas se aplican como con lostiempos del comienzo y de parada del defecto|
State Call Time Definitions -<\/B> This is the list of State specific call time definitions that are followed in this Call Time Definition|Definiciones del tiempo de la llamada del estado - Γ©sta es la lista| State Call Time Definitions -<\/B> This is the list of State specific call time definitions that are followed in this Call Time Definition|Definiciones del tiempo de la llamada del estado -</B> ésta es la listade las definiciones específicas del tiempo de la llamada del estadoque se siguen en esta definición del tiempo de la llamada|
State Call Time State -<\/B> This is the two letter code for the state that this calling time definition is for. For this to be in effect the local call time that is set in the campaign must have this state call time record in it as well as all of the leads having two letter state codes in them|Estado del tiempo de la llamada del estado - Γ©ste es el cΓ³digo de| State Call Time State -<\/B> This is the two letter code for the state that this calling time definition is for. For this to be in effect the local call time that is set in the campaign must have this state call time record in it as well as all of the leads having two letter state codes in them|Estado del tiempo de la llamada del estado -</B> éste es el código dedos letras para el estado que esta definición del tiempo que llamaestá para. Para que esto sea en efecto la llamada local mida eltiempo que se fija en la campaña debe tener este expediente deltiempo de la llamada del estado en él así como todos los plomos quetienen dos códigos del estado de la letra en ellos|
Delete Call Times -<\/B> This option allows the user to be able to delete vicidial call times records and vicidial state call times records from the system|Tiempos de la llamada de la cancelaciΓ³n - esta opciΓ³n permite que el| Delete Call Times -<\/B> This option allows the user to be able to delete vicidial call times records and vicidial state call times records from the system|Tiempos de la llamada de la cancelación -</B> esta opción permite que elusuario pueda suprimir expedientes vicidial de los tiempos de lallamada y expedientes vicidial de los tiempos de la llamada del estadodel sistema|
Modify Call Times -<\/B> This option allows the user to view and modify the call times and state call times records. A user doesn't need this option enabled if they only need to change the call times option on the campaigns screen|Modifique los tiempos de la llamada - esta opciΓ³n permite que el| Modify Call Times -<\/B> This option allows the user to view and modify the call times and state call times records. A user doesn't need this option enabled if they only need to change the call times option on the campaigns screen|Modifique los tiempos de la llamada -</B> esta opción permite que elusuario visión y modifique los expedientes de los tiempos de lallamada y de los tiempos de la llamada del estado. Un usuario nonecesita esta opción permitida si necesitan solamente cambiar laopción de los tiempos de la llamada en la pantalla de las campañas|
Wrapup Seconds -<\/B> The number of seconds to force an agent to wait before allowing them to receive or dial another call. The timer begins as soon as an agent hangs up on their customer - or in the case of alternate number dialing when the agent finishes the lead - Default is 0 seconds. If the timer runs out before the agent has dispositioned the call, the agent still will NOT move on to the next call until they select a disposition|Segundos de Wrapup - el nΓΊmero de los segundos para forzar un agente| Wrapup Seconds -<\/B> The number of seconds to force an agent to wait before allowing them to receive or dial another call. The timer begins as soon as an agent hangs up on their customer - or in the case of alternate number dialing when the agent finishes the lead - Default is 0 seconds. If the timer runs out before the agent has dispositioned the call, the agent still will NOT move on to the next call until they select a disposition|Segundos de Wrapup -</B> el número de los segundos para forzar un agenteesperar antes de permitir que reciban o que marquen otra llamada. Elcontador de tiempo comienza tan pronto como un agente cuelgue paraarriba en su cliente - o en el caso del número alterno que marcacuando el agente acaba el plomo - defecto sea los segundos 0. Si elcontador de tiempo funciona hacia fuera antes de que el agente tengadispositioned la llamada, el agente todavía no se mueve encendido ala llamada siguiente hasta que seleccionan una disposición|
Wrapup Message -<\/B> This is a campaign-specific message to be displayed on the wrapup screen if wrapup seconds is set|Mensaje de Wrapup - esto es un mensaje campaΓ±a-especi'fico que se| Wrapup Message -<\/B> This is a campaign-specific message to be displayed on the wrapup screen if wrapup seconds is set|Mensaje de Wrapup -</B> esto es un mensaje campaña-especi'fico que seexhibirá en la pantalla del wrapup si se fijan los segundos delwrapup|
You are not authorized to view this page. Please go back|Le no autorizan a visión esta página. Vaya por favor detrás| You are not authorized to view this page. Please go back|Le no autorizan a visión esta página. Vaya por favor detrás|
Day and time options will appear once you have created the Call Time Definition|Las opciones del dΓ­a y del tiempo aparecerΓ‘n una vez que usted haya| Day and time options will appear once you have created the Call Time Definition|Las opciones del día y del tiempo aparecerán una vez que usted hayacreado la definición del tiempo de la llamada|
State Call Time ID, name and state must be at least 2 characters in length|Indique que identificaciΓ³n del tiempo de la llamada, nombre y estado| State Call Time ID, name and state must be at least 2 characters in length|Indique que identificación del tiempo de la llamada, nombre y estadodebe ser por lo menos 2 caracteres en longitud|
Call Time ID and name must be at least 2 characters in length|La identificaciΓ³n del tiempo de la llamada y el nombre deben ser por| Call Time ID and name must be at least 2 characters in length|La identificación del tiempo de la llamada y el nombre deben ser porlo menos 2 caracteres en longitud|
Active State Call Time Definitions for this Record|Definiciones activas del tiempo de la llamada del estado para esto| Active State Call Time Definitions for this Record|Definiciones activas del tiempo de la llamada del estado para estoexpediente|
there is already a call time entry with this ID|hay ya una entrada de tiempo de la llamada con esta identificación| there is already a call time entry with this ID|hay ya una entrada de tiempo de la llamada con esta identificación|
CALL TIMES USING THIS STATE CALL TIME|TIEMPOS DE LA LLAMADA USANDO ESTE TIEMPO DE LA LLAMADA DEL ESTADO| CALL TIMES USING THIS STATE CALL TIME|TIEMPOS DE LA LLAMADA USANDO ESTE TIEMPO DE LA LLAMADA DEL ESTADO|
STATE CALL TIME DEFINITION NOT ADDED|DEFINICIÓN DEL TIEMPO DE LA LLAMADA DEL ESTADO NO AGREGADA| STATE CALL TIME DEFINITION NOT ADDED|DEFINICIÓN DEL TIEMPO DE LA LLAMADA DEL ESTADO NO AGREGADA|
DELETE THIS STATE CALL TIME DEFINITION|SUPRIMA ESTA DEFINICIÓN DEL TIEMPO DE LA LLAMADA DEL ESTADO| DELETE THIS STATE CALL TIME DEFINITION|SUPRIMA ESTA DEFINICIÓN DEL TIEMPO DE LA LLAMADA DEL ESTADO|
Modify Call Time State Definitions List|Modifique La Lista De las Definiciones Del Estado Del Tiempo De la| Modify Call Time State Definitions List|Modifique La Lista De las Definiciones Del Estado Del Tiempo De laLlamada|
CALL TIME DEFINITION NOT ADDED|DEFINICIÓN DEL TIEMPO DE LA LLAMADA NO AGREGADA| CALL TIME DEFINITION NOT ADDED|DEFINICIÓN DEL TIEMPO DE LA LLAMADA NO AGREGADA|
DELETE THIS CALL TIME DEFINITION|SUPRIMA ESTA DEFINICIÓN DEL TIEMPO DE LA LLAMADA| DELETE THIS CALL TIME DEFINITION|SUPRIMA ESTA DEFINICIÓN DEL TIEMPO DE LA LLAMADA|
short description of the call time|descripción corta del tiempo de la llamada| short description of the call time|descripción corta del tiempo de la llamada|
@@ -966,7 +966,7 @@ CAMPAIGNS USING THIS CALL TIME|CAMPAÑAS USANDO ESTE TIEMPO DE LA LLAMADA|
STATE CALL TIME NOT MODIFIED|TIEMPO DE LA LLAMADA DEL ESTADO NO MODIFICADO| STATE CALL TIME NOT MODIFIED|TIEMPO DE LA LLAMADA DEL ESTADO NO MODIFICADO|
CALL TIME NOT MODIFIED|TIEMPO DE LA LLAMADA NO MODIFICADO| CALL TIME NOT MODIFIED|TIEMPO DE LA LLAMADA NO MODIFICADO|
STATE CALL TIME MODIFIED|TIEMPO DE LA LLAMADA DEL ESTADO MODIFICADO| STATE CALL TIME MODIFIED|TIEMPO DE LA LLAMADA DEL ESTADO MODIFICADO|
CALL TIME MODIFIED|EL TIEMPO DE LA LLAMADA SE MODIFICÓ| CALL TIME MODIFIED|TIEMPO DE LA LLAMADA MODIFICADO|
Default Start:|Comienzo Del Defecto:| Default Start:|Comienzo Del Defecto:|
Default Stop:|Parada Del Defecto:| Default Stop:|Parada Del Defecto:|
Sunday Start:|Comienzo De Domingo:| Sunday Start:|Comienzo De Domingo:|
@@ -977,18 +977,17 @@ Tuesday Start:|Comienzo De Martes:|
Tuesday Stop:|Parada De Martes:| Tuesday Stop:|Parada De Martes:|
Wednesday Start:|Comienzo De Miércoles:| Wednesday Start:|Comienzo De Miércoles:|
Wednesday Stop:|Parada De Miércoles:| Wednesday Stop:|Parada De Miércoles:|
Thursday Start:|Comienzo De Jueves:|
Thursday Stop:|Parada De Jueves:| Thursday Stop:|Parada De Jueves:|
Friday Start:|Comienzo De Viernes:| Friday Start:|Comienzo De Viernes:|
Friday Stop:|Parada De Viernes:| Friday Stop:|Parada De Viernes:|
Saturday Start:|Comienzo De Sábado:| Saturday Start:|Comienzo De Sábado:|
Saturday Stop:|Parada De Sábado:| Saturday Stop:|Parada De Sábado:|
State Rule Added|Regla Del Estado Agregada| State Rule Added|Regla Del Estado Agregada|
State Rule Removed|La Regla Del Estado Quitó| State Rule Removed|Regla Del Estado Quitada|
STATE CALL TIME LISTINGS|LISTADOS DEL TIEMPO DE LA LLAMADA DEL ESTADO| STATE CALL TIME LISTINGS|LISTADOS DEL TIEMPO DE LA LLAMADA DEL ESTADO|
CALL TIME LISTINGS|LISTADOS DEL TIEMPO DE LA LLAMADA| CALL TIME LISTINGS|LISTADOS DEL TIEMPO DE LA LLAMADA|
STATE CALL TIME ADDED|EL TIEMPO DE LA LLAMADA DEL ESTADO AGREGÓ| STATE CALL TIME ADDED|TIEMPO DE LA LLAMADA DEL ESTADO AGREGADO|
CALL TIME ADDED|EL TIEMPO DE LA LLAMADA AGREGÓ| CALL TIME ADDED|TIEMPO DE LA LLAMADA AGREGADO|
Drop Call Seconds|Segundos De la Llamada De la Gota| Drop Call Seconds|Segundos De la Llamada De la Gota|
Use Safe Harbor Message|Utilice El Mensaje Seguro Del Puerto| Use Safe Harbor Message|Utilice El Mensaje Seguro Del Puerto|
Safe Harbor Exten|Puerto Seguro Exten| Safe Harbor Exten|Puerto Seguro Exten|
@@ -1002,18 +1001,17 @@ New State Call Time Addition|Nueva Adición Del Tiempo De la Llamada Del Estado|
Modify Call Time|Modifique El Tiempo De la Llamada| Modify Call Time|Modifique El Tiempo De la Llamada|
MODIFY A CALL TIME|MODIFIQUE Un RATO De la LLAMADA| MODIFY A CALL TIME|MODIFIQUE Un RATO De la LLAMADA|
Modify State Call Time|Modifique El Tiempo De la Llamada Del Estado| Modify State Call Time|Modifique El Tiempo De la Llamada Del Estado|
MODIFY A STATE CALL TIME|MODIFIQUE Un RATO De la LLAMADA Del ESTADO| MODIFY A STATE CALL TIME|_ MODIFICAR Uno ESTADO LLAMAR TIEMPO|
Delete Call Time|Tiempo De la Llamada De la Cancelación|
Delete State Call Time|Tiempo De la Llamada Del Estado De la Cancelación| Delete State Call Time|Tiempo De la Llamada Del Estado De la Cancelación|
State Call Times|Tiempos De la Llamada Del Estado| State Call Times|Tiempos De la Llamada Del Estado|
State Call Time ID|Identificación Del Tiempo De la Llamada Del Estado| State Call Time ID|Identificación Del Tiempo De la Llamada Del Estado|
State Call Time Name|Nombre Del Tiempo De la Llamada Del Estado| State Call Time Name|_ Estado Llamar Tiempo Nombre|
State Call Time Comments|Comentarios Del Tiempo De la Llamada Del Estado| State Call Time Comments|Comentarios Del Tiempo De la Llamada Del Estado|
STATE CALL TIME NOT DELETED|TIEMPO DE LA LLAMADA DEL ESTADO NO SUPRIMIDO| STATE CALL TIME NOT DELETED|TIEMPO DE LA LLAMADA DEL ESTADO NO SUPRIMIDO|
CALL TIME DELETION COMPLETED|CANCELADURA DEL TIEMPO DE LA LLAMADA TERMINADA| CALL TIME DELETION COMPLETED|_ LLAMAR TIEMPO CANCELADURA TERMINAR|
STATE CALL TIME DELETION COMPLETED|CANCELADURA DEL TIEMPO DE LA LLAMADA DEL ESTADO TERMINADA| STATE CALL TIME DELETION COMPLETED|CANCELADURA DEL TIEMPO DE LA LLAMADA DEL ESTADO TERMINADA|
CALL TIME NOT DELETED|TIEMPO DE LA LLAMADA NO SUPRIMIDO| CALL TIME NOT DELETED|TIEMPO DE LA LLAMADA NO SUPRIMIDO|
Call Time ID must be at least 2 characters in length|La identificaciΓ³n del tiempo de la llamada debe ser por lo menos 2| Call Time ID must be at least 2 characters in length|_ llamar tiempo identificación deber ser por lo menos 2 carácter enlongitud|
STATE CALL TIME DELETION CONFIRMATION|CONFIRMACIÓN DE LA CANCELADURA DEL TIEMPO DE LA LLAMADA DEL ESTADO| STATE CALL TIME DELETION CONFIRMATION|CONFIRMACIÓN DE LA CANCELADURA DEL TIEMPO DE LA LLAMADA DEL ESTADO|
CALL TIME DELETION CONFIRMATION|CONFIRMACIÓN DE LA CANCELADURA DEL TIEMPO DE LA LLAMADA| CALL TIME DELETION CONFIRMATION|CONFIRMACIÓN DE LA CANCELADURA DEL TIEMPO DE LA LLAMADA|
Call Times|Tiempos De la Llamada| Call Times|Tiempos De la Llamada|
@@ -1036,3 +1034,34 @@ Wrapup Message:|Mensaje De Wrapup:|
Alt Number Dialing|El Marcar Del Número Del Alt| Alt Number Dialing|El Marcar Del Número Del Alt|
no active lists selected for this campaign|ningunas listas activas seleccionadas para esta campaña| no active lists selected for this campaign|ningunas listas activas seleccionadas para esta campaña|
Realtime Screen|Pantalla En tiempo real| Realtime Screen|Pantalla En tiempo real|
Allowable Inbound Groups -<\/B> Here is where you select the inbound groups you want agents in this CLOSER campaign to be able to take calls from. It is important for BLENDED inbound/outbound campaigns only to select the inbound groups that are used for agents in this campaign|Grupos de entrada permisibles -</B> aquí es donde usted selecciona agrupos de entrada que usted quisiera que los agentes en esta campañaMÁS CERCANA pudieran tomar llamadas de. Es importante que lascampañas MEZCLADAS de inbound/outbound seleccionen solamente a losgrupos de entrada que se utilizan para los agentes en esta campaña|
Allowed Inbound Groups|Grupos De entrada Permitidos|
ADD NUMBER TO DNC|AGREGUE EL NÚMERO A DNC|
ADD A NUMBER TO THE DNC LIST|AGREGUE Un NÚMERO A la LISTA De DNC|
Add New DNC|Agregue DNC Nuevo|
Phone Number|Número De Teléfono|
VICIDIAL DNC List -<\/B> This Do Not Call list contains every lead that has been set to a status of DNC in the system. Through the LISTS - ADD NUMBER TO DNC page you are able to manually add a number to this list so that it will not be called by campaigns that use the internal DNC list|Lista de VICIDIAL DNC -</B> esto no llama la lista contiene cada plomo quese ha fijado a un estado de DNC en el sistema. A través de las LISTAS- AGREGUE EL NÚMERO a la página de DNC que usted puede agregarmanualmente un número a esta lista de modo que no sea llamada por lascampañas que utilizan la lista interna de DNC|
DNC NOT ADDED - This phone number is already in the Do Not Call List|DNC NO AGREGADO - este número de teléfono está en no llama ya lalista|
DNC ADDED|DNC AGREGADO|
Use Internal DNC List -<\/B> This defines whether this campaign is to filter leads against the Internal DNC list. If it is set to Y, the hopper will look for each phone number in the DNC list before placing it in the hopper. If it is in the DNC list then it will change that lead status to DNCL so it cannot be dialed. Default is N|Lista interna del uso DNC -</B> esto define si esta campaña es filtrarlos plomos contra la lista interna de DNC. Si se fija a Y, la tolvabuscará cada número de teléfono en la lista de DNC antes de ponerlaen la tolva. Si está en la lista de DNC entonces que cambiará eseconduce estado a DNCL así que no puede ser marcada. El defecto es N|
Use Internal DNC List|Utilice La Lista Interna de DNC|
Campaign CallerID -<\/B> This field allows for the sending of a custom callerid number on the outbound calls. This is the number that would show up on the callerid of the person you are calling. The default is UNKNOWN. If you are using T1 or E1s to dial out this option is only available if you are using PRIs - ISDN T1s or E1s - that have the custom callerid feature turned on, this will not work with Robbed-bit service(RBS) circuits. This will also work through most VOIP(SIP or IAX trunks) providers that allow dynamic outbound callerID. The custom callerID only applies to calls placed for the VICIDIAL campaign directly, any 3rd party calls or transfers will not send the custom callerID. NOTE: Sometimes putting UNKNOWN or PRIVATE in the field will yield the sending of your default callerID number by your carrier with the calls. You may want to test this and put 0000000000 in the callerid field instead if you do not want to send you CallerID|Campaña CallerID -</B> este campo permite enviar de un número de encargodel callerid en las llamadas de salida. Éste es el número quedemostraría para arriba en el callerid de la persona que usted estállamando. El defecto es DESCONOCIDO. Si usted está utilizando el T1 oEß para marcar hacia fuera esta opción está solamente disponible siusted está utilizando PRIs - el ISDN Tß o Eß que tenga lacaracterística de encargo del callerid girada, éste no trabajarácon los circuitos del service(RBS) del Robar-pedacito. Esto tambiéntrabajará a través los abastecedores de la mayoría de los troncosde VOIP(SIP o de IAX) que permiten el callerID de salida dinámico. ElcallerID de encargo se aplica solamente a las llamadas puestas para lacampaña de VICIDIAL directamente, cualquier tercer persona llama olas transferencias no enviarán el callerID de encargo. NOTA: A vecesel poner DESCONOCIDO o PRIVADO en el campo rendirá enviar de sunúmero del callerID del defecto por su portador con las llamadas.Usted puede desear probar esto y poner 0000000000 en el campo delcallerid en lugar de otro si usted no desea enviarle CallerID|
Login -<\/B> The login used for the phone user to login to the client applications|Conexión -</B> la conexión usada para el usuario del teléfono a laconexión a los usos del cliente|
Password -<\/B> The password used for the phone user to login to the client applications|Contraseña -</B> la contraseña usada para el usuario del teléfono a laconexión a los usos del cliente|
New Campaign Lead Recycle Addition|El Nuevo Plomo De la Campaña Recicla La Adición|
Modify Campaign Lead Recycle|Modifique El Plomo De la Campaña Reciclan|
Through the use of lead recycling, you can call specific statuses of leads again at a specified interval without resetting the entire list. Lead recycling is campaign-specific and does not have to be a selected dialable status in your campaign. The attempt delay field is the number of seconds until the lead can be placed back in the hopper, this number must be at least 120 seconds. The attempt maximum field is the maximum number of times that a lead of this status can be attempted before the list needs to be reset, this number can be from 1 to 10. You can activate and deactivate a lead recycle entry with the provided links. This feature only works in auto-dial mode, where dial level is greater than 0|Con el uso del plomo que recicla, usted puede llamar estadosespecíficos de plomos otra vez en un intervalo especificado sin elreajuste de la lista entera. El reciclaje del plomo escampaña-especi'fico y no tiene que ser un estado dialableseleccionado en su campaña. La tentativa retrasa el campo es elnúmero de segundos hasta que el plomo se puede poner detrás en latolva, este número debe ser por lo menos 120 segundos. El campomáximo de la tentativa es el número máximo de las épocas que unplomo de este estado se puede procurar antes de que la lista necesiteser reajustada, este número puede ser a partir la 1 a 10. Usted puedeactivar y desactivar un plomo recicle la entrada con los acoplamientosproporcionados. Esta característica trabaja solamente en modo delautomo'vil-dial, donde está mayor el nivel del dial de 0|
CAMPAIGN LEAD RECYCLE NOT ADDED - there is already a lead-recycle for this campaign with this status|El PLOMO de la CAMPAÑA RECICLA NO AGREGADO - hay ya unconducir-reciclaje para esta campaña con este estado|
status must be between 1 and 6 characters in length|el estado debe estar entre 1 y 6 caracteres en longitud|
attempt delay must be at least 120 seconds|la tentativa retrasa debe ser por lo menos 120 segundos|
maximum attempts must be from 1 to 10|las tentativas máximas deben ser a partir la 1 a 10|
CAMPAIGN LEAD RECYCLE ADDED|EL PLOMO DE LA CAMPAÑA RECICLA AGREGADO|
CAMPAIGN LEAD RECYCLE NOT DELETED|EL PLOMO DE LA CAMPAÑA RECICLA NO SUPRIMIDO|
CAMPAIGN LEAD RECYCLE DELETED|EL PLOMO DE LA CAMPAÑA RECICLA SUPRIMIDO|
Delete Lead Recycle|El Plomo De la Cancelación Recicla|
LEAD RECYCLING WITHIN THIS CAMPAIGN|PLOMO QUE RECICLA DENTRO DE ESTA CAMPAÑA|
ATTEMPT DELAY|LA TENTATIVA RETRASA|
ATTEMPT MAXIMUM|MÁXIMO DE LA TENTATIVA|
ADD NEW CAMPAIGN LEAD RECYCLE|AGREGUE EL NUEVO PLOMO DE LA CAMPAÑA RECICLAN|
Attempt Delay|La Tentativa Retrasa|
Attempt Maximum|Máximo De la Tentativa|
+1 -1
View File
@@ -397,7 +397,7 @@ AVAILABLE EXTENSIONS|PROLONGEMENTS DISPONIBLES|
FAVORITES| FAVORIS| FAVORITES| FAVORIS|
### END translation phrases through 1.1.11 release ### ### END translation phrases through 1.1.11 release ###
Search Existing Leads|Fils Existants De Recherche| Search Existing Leads|Fils Existants De Recherche|
This option if checked will attempt to find the phone number in the system before inserting it as a new lead|Cette option si vΓ©rifiΓ© essayera de trouver le numΓ©ro de| This option if checked will attempt to find the phone number in the system before inserting it as a new lead|Cette option si vérifié essayera de trouver le numéro de téléphone dans le système avant de l'insérer comme nouvelle avance|
Finish Wrapup and Move On|Finition Wrapup et passer| Finish Wrapup and Move On|Finition Wrapup et passer|
seconds remaining in wrapup|secondes restantes dans le wrapup| seconds remaining in wrapup|secondes restantes dans le wrapup|
Call Wrapup:|Appel Wrapup :| Call Wrapup:|Appel Wrapup :|
+1 -1
View File
@@ -397,7 +397,7 @@ AVAILABLE EXTENSIONS|ESTENSIONI DISPONIBILI|
FAVORITES| FAVORITI| FAVORITES| FAVORITI|
### END translation phrases through 1.1.11 release ### ### END translation phrases through 1.1.11 release ###
Search Existing Leads|Cavi Esistenti Di Ricerca| Search Existing Leads|Cavi Esistenti Di Ricerca|
This option if checked will attempt to find the phone number in the system before inserting it as a new lead|Questa opzione se controllato tenterΓ  di trovare il numero di| This option if checked will attempt to find the phone number in the system before inserting it as a new lead|Questa opzione se controllato tenterà di trovare il numero di telefono nel sistema prima dell'inserimento esso come cavo nuovo|
Finish Wrapup and Move On|Rivestimento Wrapup e pass| Finish Wrapup and Move On|Rivestimento Wrapup e pass|
seconds remaining in wrapup|secondi restanti nel wrapup| seconds remaining in wrapup|secondi restanti nel wrapup|
Call Wrapup:|Chiamata Wrapup:| Call Wrapup:|Chiamata Wrapup:|
+1 -1
View File
@@ -397,7 +397,7 @@ AVAILABLE EXTENSIONS|EXTENSÕES DISPONÍVEIS|
FAVORITES| FAVORITOS| FAVORITES| FAVORITOS|
### END translation phrases through 1.1.11 release ### ### END translation phrases through 1.1.11 release ###
Search Existing Leads|Ligações Existentes Da Busca| Search Existing Leads|Ligações Existentes Da Busca|
This option if checked will attempt to find the phone number in the system before inserting it as a new lead|Esta opΓ§Γ£o se verificado tentarΓ‘ encontrar o nΓΊmero de telefone no| This option if checked will attempt to find the phone number in the system before inserting it as a new lead|Esta opção se verificado tentará encontrar o número de telefone no sistema antes de introduzi-lo como uma ligação nova|
Finish Wrapup and Move On|Revestimento Wrapup e movimento sobre| Finish Wrapup and Move On|Revestimento Wrapup e movimento sobre|
seconds remaining in wrapup|segundos restantes no wrapup| seconds remaining in wrapup|segundos restantes no wrapup|
Call Wrapup:|Chamada Wrapup:| Call Wrapup:|Chamada Wrapup:|
@@ -0,0 +1,116 @@
############################################################ ADMIN
Drop Call Seconds -<\/B> The number of seconds from the time the customer line is picked up until the call is considered a DROP, only applies to outbound calls|Sekunden zur Verbindung -</B> Anzahl der Sekunden vom Abnehmen des Kunden bis zur Erkennung als Verbindung, betrifft nur abgehende Verbindungen|
Safe Harbor Message -<\/B> If set to Y will play a message to customer after the Drop Call Seconds timeout is reached without being transferred to an agent. This setting will override sending to a voicemail box if this is set to Y|Sicherheitsnachricht -</B> Wenn auf Y gesetzt wird dem Kunden nach Ablauf der Sekunden zur Verbindung, ohne zu einem Agenten verbunden worden zu sein, eine Nachricht abgespielt. Diese Einstellung setzt die Option Senden zu einer Voicemail Box ausser Kraft, wenn diese auf Y steht|
Safe Harbor Exten -<\/B> This is the dialplan extension that the desired Safe Harbor audio file is located at on your server|Sicherheitsnebenstelle -</B> Dies ist die Wählplan Nebenstelle, wo sich die gewünschte Sicherheits-Audiodatei auf Ihrem Server befindet|
Drop Message -<\/B> If set to Y will play a message to customer after the Drop Call Seconds timeout is reached without being transferred to an agent. This setting will override sending to a voicemail box if this is set to Y|Verbindungs-Nachricht-</B> Wenn auf Y gesetzt wird dem Kunden nach Ablauf der Sekunden zur Verbindung, ohne zu einem Agenten verbunden worden zu sein, eine Nachricht abgespielt. Diese Einstellung setzt die Option Senden zu einer Voicemail Box ausser Kraft, wenn diese auf Y steht|
Drop Exten -<\/B> This is the dialplan extension that the desired Dropped call audio file is located at on your server|Verbindungs-Nebenstelle -</B> Dies ist die Wählplan-Nebenstelle, wo sich die gewünschte Audiodatei für die aufgebaute Verbindung auf Ihrem Server befindet|
Call Time ID -<\/B> This is the short name of a Vicidial Call Time Definition. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 10 characters, minimum of 2 characters|Anrufzeit ID -</B> Dies ist der kurze Name von einer Vicidial Anrufzeit Definition. Es muss ein eindeutiger Bezeichner sein. Leerzeichen und Punkte sind in diesem Feld nicht erlaubt. Maximal 10 Zeichen, mindestens 2|
Call Time Name -<\/B> This is a more descriptive name of the Call Time Definition. This is a short summary of the Call Time definition. max 30 characters, minimum of 2 characters|Anrufzeit Name -</B> Dies ist ein besser beschreibender Name für die Anrufzeit Definition. Es ist eine kurze Zusammenfassung der Anrufzeit Definition. Maximal 30 Zeichen, mindestens 2|
Call Time Comments -<\/B> This is where you can place comments for a Vicidial Call Time Definition such as -10am to 4pm with extra call state restrictions-. max 255 characters|Anrufzeit Kommentare -</B> Hier können Sie Kommentare für eine Vicidial Anrufzeit Definition wie -10 bis 14 Uhr mit eigenen Beschränkungen für das angerufene Land- machen. Maximal 255 Zeichen|
Default Start and Stop Times -<\/B> This is the default time that calling will be allowed to be started or stopped within this call time definition if the day-of-the-week start time is not defined. 0 is midnight. To prevent calling completely set this field to 2400 and set the Default Stop time to 2400. To allow calling 24 hours a day set the start time to 0 and the stop time to 2400|Standard Start and Stop Zeiten -</B> Dies ist die Standardzeit, zu der Anrufe innerhalb der Anrufzeitdefinition gestartet oder gestoppt werden dürfen, wenn die Wochentag Startzeit nicht definiert ist. 0 ist Mitternacht. Um Anrufe komplett zu verhindern den Wert auf 2400 und die Standard Stopzeit ebenfalls auf 2400 setzen. Um Anrufe für 24 Stunden am Tag zu erlauben die Startzeit auf 0 und die Stopzeit auf 2400 setzen|
Weekday Start and Stop Times -<\/B> These are the custom times per day that can be set for the call time definition. same rules apply as with the Default start and stop times|Wochentag Start and Stop Zeit -</B> Dies sind die speziellen Zeiten pro Tag, welche für die Anrufzeit Definition gesetzt werden können. Es gelten die selben Regeln wie für Start und Stop Zeiten|
State Call Time Definitions -<\/B> This is the list of State specific call time definitions that are followed in this Call Time Definition|Land Anrufzeit Definition -</B> Dies ist die Liste der landspezifischen Anrufzeit Definitionen, die von dieser Anrufzeit Definition beachtet werden|
State Call Time State -<\/B> This is the two letter code for the state that this calling time definition is for. For this to be in effect the local call time that is set in the campaign must have this state call time record in it as well as all of the leads having two letter state codes in them|Landesspezifische Anrufzeit Definition -</B> Dies ist der zwei Buchstaben Code für das Land, für das die Anrufzeit Definition gilt. Damit diese ausgeführt wird muss die in der Kampagne gesetzte lokale Anrufzeit diese landesspezifische Anrufzeit Aufzeichnung enthalten, genauso wie alle anzurufenden Anschlüsse den landesspezifischen zwei Buchstaben Code enthalten müssen |
Delete Call Times -<\/B> This option allows the user to be able to delete vicidial call times records and vicidial state call times records from the system|Löschen Anrufzeiten -</B> Diese Option erlaubt dem Nutzer die Vicidial Anrufzeiten Aufzeichnungen und Vicidial Status Anrufzeiten Aufzeichnungen vom System zu löschen|
Modify Call Times -<\/B> This option allows the user to view and modify the call times and state call times records. A user doesn't need this option enabled if they only need to change the call times option on the campaigns screen|Ändere Anrufzeiten -</B> Diese Option erlaubt dem Nutzer das Ansehen und Ändern der Anrufzeiten und Status Anrufzeiten Aufzeichnungen. Ein Nutzer braucht diese Option nicht aktiviert, wenn er nur die Anrufzeit Option auf der Kampagnen-Sicht ändern können muss|
Wrapup Seconds -<\/B> The number of seconds to force an agent to wait before allowing them to receive or dial another call. The timer begins as soon as an agent hangs up on their customer - or in the case of alternate number dialing when the agent finishes the lead - Default is 0 seconds. If the timer runs out before the agent has dispositioned the call, the agent still will NOT move on to the next call until they select a disposition|Sekunden Nachbereitung -</B> Anzahl der Sekunden, die ein Agent bis zum nächsten erhaltenen Anruf oder Wählen eines anderen Anrufs warten muss. Die Zeit beginnt, sobald ein Agent bei seinem Kunden aufgelegt hat - oder im Fall der alternativen Nummernwahl, wenn ein Agent das Telefonat beendet - Standard ist 0 Sekunden. Wenn die Zeit abgelaufen ist bevor der Agent den Anruf eingeordnet hat, wird der Agent dennoch nicht zum nächsten Anruf kommen, bevor er eine Einteilung gewählt hat|
Wrapup Message -<\/B> This is a campaign-specific message to be displayed on the wrapup screen if wrapup seconds is set|Nachbereitungsnachricht -</B> Dies ist eine Kampagnen-spezifische Nachricht, die bei gesetzten Sekunden Nachbereitung auf dem Nachbereitungsbildschirm angezeigt wird|
You are not authorized to view this page. Please go back|Sie haben nicht die Rechte, um diese Seite anzusehen. Bitte zurück gehen|
Day and time options will appear once you have created the Call Time Definition|Datums und Zeitoptionen erscheinen, wenn die Anrufzeitdefinition angelegt wurde|
State Call Time ID, name and state must be at least 2 characters in length|Landesspezifische Anrufzeit ID, Name und Land müssen mindestens 2 Zeichen Länge haben|
Call Time ID and name must be at least 2 characters in length|Anrufzeit ID und Name müssen mindestens 2 Zeichen Länge haben|
Active State Call Time Definitions for this Record|Aktive landesspezifische Anrufzeit Definitionen für diese Aufnahme|
there is already a call time entry with this ID|Es existiert bereits ein Anrufzeiteintrag mit dieser ID|
CALL TIMES USING THIS STATE CALL TIME|Anrufzeiten, die diese landesspezifische Anrufzeit benutzen|
STATE CALL TIME DEFINITION NOT ADDED|Landesspezifische Anrufzeitdefinition nicht hinzugefügt|
DELETE THIS STATE CALL TIME DEFINITION|Diese landesspezifische Anrufzeitdefinition löschen|
Modify Call Time State Definitions List|Bearbeite Anrufzeit Landdefinitions-Liste|
CALL TIME DEFINITION NOT ADDED|Anrufzeit Definition nicht hinzugefügt|
DELETE THIS CALL TIME DEFINITION|Lösche diese Anrufzeit Definition|
short description of the call time|Kurze Beschreibung der Anrufzeit|
CAMPAIGNS USING THIS CALL TIME|Kampagnen, die diese Anrufzeit nutzen|
STATE CALL TIME NOT MODIFIED|Landesspezifische Anrufzeit nicht geändert|
CALL TIME NOT MODIFIED|Anrufzeit nicht geändert|
STATE CALL TIME MODIFIED|Landesspezifische Anrufzeit geändert|
CALL TIME MODIFIED|Anrufzeit geändert|
Default Start:|Standard Start|
Default Stop:|Standard Stop|
Sunday Start:|Sonntag Start|
Sunday Stop:|Sonntag Stop|
Monday Start:|Montag Start|
Monday Stop:|Montag Stop|
Tuesday Start:|Dienstag Start|
Tuesday Stop:|Dienstag Stop|
Wednesday Start:|Mittwoch Start|
Wednesday Stop:|Mittwoch Stop|
Thursday Start:|Donnerstag Start|
Thursday Stop:|Donnerstag Stop|
Friday Start:|Freitag Start|
Friday Stop:|Freitag Stop|
Saturday Start:|Sonnabend Start|
Saturday Stop:|Sonnabend Stop|
State Rule Added|Landesrichtlinie hinzugefügt|
State Rule Removed|Landesrichlinie gelöscht|
STATE CALL TIME LISTINGS|Liste der landesspezifische Anrufzeiten|
CALL TIME LISTINGS|Anrufzeiten Liste|
STATE CALL TIME ADDED|landesspezifische Anrufzeiten hinzugefügt|
CALL TIME ADDED|Anrufzeit hinzugefügt|
Drop Call Seconds|Verbindungsaufbau Sekunden|
Use Safe Harbor Message|Benutze Sicherheitsnachricht|
Safe Harbor Exten|Sicherheitsnebenstelle|
Use Drop Message|Benutze Verbindungsaufbaunachricht|
Drop Exten|Verbindungsaufbaunebenstelle|
SIP Listen Version|Höre auf SIP Version|
Add New Call Time|Füge neue Anrufzeit hinzu|
Add New State Call Time|Füge neue landesspezifische Anrufzeit hinzu|
New Call Time Addition|Neue Anrufzeit hinzufügen|
New State Call Time Addition|Neue landesspezifische Anrufzeit hinzufügen|
Modify Call Time|Bearbeite Anrufzeit|
MODIFY A CALL TIME|Bearbeite eine Anrufzeit|
Modify State Call Time|Bearbeite landesspezifische Anrufzeit|
MODIFY A STATE CALL TIME|Bearbeite eine landesspezifische Anrufzeit|
Delete Call Time|Lösche Anrufzeit|
Delete State Call Time|Lösche landesspezifische Anrufzeit|
State Call Times|Landesspezische Anrufzeiten|
State Call Time ID|Landesspezifische Anrufzeiten ID|
State Call Time Name|Landesspezifischer Anrufzeiten Name|
State Call Time Comments|Landesspezifischer Anrufzeiten Kommentar|
STATE CALL TIME NOT DELETED|Landesspezifische Anrufzeit nicht gelöscht|
CALL TIME DELETION COMPLETED|Löschen der Anrufzeiten beendet|
STATE CALL TIME DELETION COMPLETED|Löschen der landesspezifischen Anrufzeit beendet|
CALL TIME NOT DELETED|Anrufzeit nicht gelöscht|
Call Time ID must be at least 2 characters in length|Anrufzeit ID muss mindestens 2 Zeichen lang sein|
STATE CALL TIME DELETION CONFIRMATION|Löschen der landesspezifischen Anrufzeit bestätigen|
CALL TIME DELETION CONFIRMATION|Löschen der Anrufzeit bestätigen|
Call Times|Anrufzeiten|
CALL TIMES|Anrufzeiten|
SHOW CALL TIMES|Zeige Anrufzeiten|
ADD NEW CALL TIME|Hinzufügen neuer Anrufzeiten|
SHOW STATE CALL TIMES|Zeige landesspezifische Anrufzeiten|
ADD NEW STATE CALL TIME|Hinzufügen neuer landesspezifischer Anrufzeiten|
Call Time ID|Anrufzeit ID|
Call Time Name|Anrufzeit Name|
Call Time Comments|Anrufzeit Kommentare|
short description of the call time|Kurze Beschreibung der Anrufzeiten|
HIDE|Verberge|
SHOW|Zeige|
Show Dialable Leads Count|Zeige Anzahl anrufbarer Anschlüsse|
Dialable Lead Count|Anzahl anrufbarer Anschlüsse|
TEST ON CAMPAIGN|Testen der Kampagne|
Wrapup Seconds:|Nachbereitung Sekunden|
Wrapup Message:|Nachbereitung Nachricht|
Alt Number Dialing|Alternative Nummer wählen|
no active lists selected for this campaign|Keine aktiven Listen für diese Kampagne gewählt|
Realtime Screen|Echtzeit Bildschirm|
############################################################ CLIENT
Search Existing Leads|Suche existierende Anschlüsse|
This option if checked will attempt to find the phone number in the system before inserting it as a new lead|Wenn diese Option gesetzt ist wird versucht, die Telefonnummer im System zu finden, bevor sie als neuer Anschluss eingefügt wird|
Finish Wrapup and Move On|Beende Nachbereitung und mache weiter|
seconds remaining in wrapup|Verbleibende Sekunden der Nachbereitung|
Call Wrapup:|Anruf Nachbereitung|
@@ -0,0 +1,402 @@
# language.txt - this file is for the internationalization of the astGUIclient
# client web pages. The associated install.pl file will take the language as an
# argument and alter the php scripts to the language typed in the command line:
# example: ./install.pl --language=es
# current languages in the file:
# - English - (en) no alterations
# - Spanish - (es) first column
# - French - (fr) second column
# - German - (de) third column
# - Italian - (it) fourth column
# - Portuguese - (pt) fifth column
# - Greek - (el) sixth column
***LANGUAGES***
en-English|es-Español|fr-Français|de-Deutsch|it-Italiano|pt-Português|el-Ελληνικά|
***FILES***
agc|astguiclient.php|0
agc|vicidial.php|0
agc|vdc_db_query.php|0
agc|manager_send.php|0
agc|conf_exten_check.php|0
agc|inbound_popup.php|0
agc|active_list_refresh.php|0
agc|park_calls_display.php|0
agc|live_exten_check.php|0
agc|call_log_display.php|0
agc|voicemail_check.php|0
agc|dbconnect.php|1
agc|htglobalize.php|1
***TRANSLATIONS***
### special translations that should stay at the top of the file ###
"JAN"|"ENE"|"JAN"|"JAN"|"GEN"|"JAN"|"ΙΑΝ"|""|""|
"FEB"|"FEB"|"FÉV"|"FEB"|"FEB"|"FEV"|"ΦΕΒ"|""|""|
"MAR"|"MAR"|"MAR"|"MÄR"|"MAR"|"MAR"|"ΜΑΡ"|""|""|
"APR"|"ABR"|"AVR"|"APR"|"APR"|"ABR"|"ΑΠΡ"|""|""|
"MAY"|"PUE"|"PEU"|"MÖG"|"POS"|"POS"|"ΜΆΙ"|""|""|
"JUN"|"JUN"|"JUN"|"JUN"|"GIU"|"JUN"|"ΙΟΝ"|""|""|
"JLY"|"JUL"|"JUL"|"JLY"|"LUG"|"JLY"|"ΙΟΛ"|""|""|
"AUG"|"AGO"|"AOÛ"|"AUG"|"AGO"|"AGO"|"ΑΥΓ"|""|""|
"SEP"|"SEP"|"SEP"|"SEP"|"SET"|"SET"|"ΣΕΠ"|""|""|
"OCT"|"OCT"|"OCT"|"OKT"|"OTT"|"OUT"|"ΟΚΤ"|""|""|
"NOV"|"NOV"|"NOV"|"NOV"|"NOV"|"NOV"|"ΝΟΕ"|""|""|
"DEC"|"DIC"|"DÉC"|"DEZ"|"DIC"|"DEZ"|"ΔΕΚ"|""|""|
\./images/|../agc/images/|
BORDER|Border|
VALUE=SUBMIT|VALUE=SUBMIT|
TYPE=SUBMIT|TYPE=Submit|
### BEGIN translation phrases through 1.1.11 release ###
English|Inglés|Anglais|Englisch|Inglese|Inglês|Αγγλικά||
Spanish|Español|Espagnol|Spanisch|Spagnolo|Espanhol|Ισπανικά||
French|Francés|Français|Französisch|Francese|Francês|Γαλλικά||
German|Alemán|Allemand|Deutsch|Tedesco|Alemão|Γερμανικά||
Italian|Italiano|Italien|Italienisch|Italiano|Italiano|Ιταλικά||
agc_check_voicemail_BLINK.gif|agc_check_voicemail_BLINK_es.gif|agc_check_voicemail_BLINK_fr.gif|agc_check_voicemail_BLINK_de.gif|agc_check_voicemail_BLINK_it.gif|agc_check_voicemail_BLINK_pt.gif|agc_check_voicemail_BLINK_el.gif||
agc_check_voicemail_OFF.gif|agc_check_voicemail_OFF_es.gif|agc_check_voicemail_OFF_fr.gif|agc_check_voicemail_OFF_de.gif|agc_check_voicemail_OFF_it.gif|agc_check_voicemail_OFF_pt.gif|agc_check_voicemail_OFF_el.gif||
agc_check_voicemail_ON.gif|agc_check_voicemail_ON_es.gif|agc_check_voicemail_ON_fr.gif|agc_check_voicemail_ON_de.gif|agc_check_voicemail_ON_it.gif|agc_check_voicemail_ON_pt.gif|agc_check_voicemail_ON_el.gif||
agc_live_call_OFF.gif|agc_live_call_OFF_es.gif|agc_live_call_OFF_fr.gif|agc_live_call_OFF_de.gif|agc_live_call_OFF_it.gif|agc_live_call_OFF_pt.gif|agc_live_call_OFF_el.gif||
agc_live_call_ON.gif|agc_live_call_ON_es.gif|agc_live_call_ON_fr.gif|agc_live_call_ON_de.gif|agc_live_call_ON_it.gif|agc_live_call_ON_pt.gif|agc_live_call_ON_el.gif||
agc_tab_active_lines.gif|agc_tab_active_lines_es.gif|agc_tab_active_lines_fr.gif|agc_tab_active_lines_de.gif|agc_tab_active_lines_it.gif|agc_tab_active_lines_pt.gif|agc_tab_active_lines_el.gif||
agc_tab_conferences.gif|agc_tab_conferences_es.gif|agc_tab_conferences_fr.gif|agc_tab_conferences_de.gif|agc_tab_conferences_it.gif|agc_tab_conferences_pt.gif|agc_tab_conferences_el.gif||
agc_tab_main.gif|agc_tab_main_es.gif|agc_tab_main_fr.gif|agc_tab_main_de.gif|agc_tab_main_it.gif|agc_tab_main_pt.gif|agc_tab_main_el.gif||
vdc_LB_dialnextnumber.gif|vdc_LB_dialnextnumber_es.gif|vdc_LB_dialnextnumber_fr.gif|vdc_LB_dialnextnumber_de.gif|vdc_LB_dialnextnumber_it.gif|vdc_LB_dialnextnumber_pt.gif|vdc_LB_dialnextnumber_el.gif||
vdc_LB_dialnextnumber_OFF.gif|vdc_LB_dialnextnumber_OFF_es.gif|vdc_LB_dialnextnumber_OFF_fr.gif|vdc_LB_dialnextnumber_OFF_de.gif|vdc_LB_dialnextnumber_OFF_it.gif|vdc_LB_dialnextnumber_OFF_pt.gif|vdc_LB_dialnextnumber_OFF_el.gif||
vdc_LB_grabparkedcall.gif|vdc_LB_grabparkedcall_es.gif|vdc_LB_grabparkedcall_fr.gif|vdc_LB_grabparkedcall_de.gif|vdc_LB_grabparkedcall_it.gif|vdc_LB_grabparkedcall_pt.gif|vdc_LB_grabparkedcall_el.gif||
vdc_LB_hangupcustomer.gif|vdc_LB_hangupcustomer_es.gif|vdc_LB_hangupcustomer_fr.gif|vdc_LB_hangupcustomer_de.gif|vdc_LB_hangupcustomer_it.gif|vdc_LB_hangupcustomer_pt.gif|vdc_LB_hangupcustomer_el.gif||
vdc_LB_hangupcustomer_OFF.gif|vdc_LB_hangupcustomer_OFF_es.gif|vdc_LB_hangupcustomer_OFF_fr.gif|vdc_LB_hangupcustomer_OFF_de.gif|vdc_LB_hangupcustomer_OFF_it.gif|vdc_LB_hangupcustomer_OFF_pt.gif|vdc_LB_hangupcustomer_OFF_el.gif||
vdc_LB_parkcall.gif|vdc_LB_parkcall_es.gif|vdc_LB_parkcall_fr.gif|vdc_LB_parkcall_de.gif|vdc_LB_parkcall_it.gif|vdc_LB_parkcall_pt.gif|vdc_LB_parkcall_el.gif||
vdc_LB_parkcall_OFF.gif|vdc_LB_parkcall_OFF_es.gif|vdc_LB_parkcall_OFF_fr.gif|vdc_LB_parkcall_OFF_de.gif|vdc_LB_parkcall_OFF_it.gif|vdc_LB_parkcall_OFF_pt.gif|vdc_LB_parkcall_OFF_el.gif||
vdc_LB_pause.gif|vdc_LB_pause_es.gif|vdc_LB_pause_fr.gif|vdc_LB_pause_de.gif|vdc_LB_pause_it.gif|vdc_LB_pause_pt.gif|vdc_LB_pause_el.gif||
vdc_LB_pause_OFF.gif|vdc_LB_pause_OFF_es.gif|vdc_LB_pause_OFF_fr.gif|vdc_LB_pause_OFF_de.gif|vdc_LB_pause_OFF_it.gif|vdc_LB_pause_OFF_pt.gif|vdc_LB_pause_OFF_el.gif||
vdc_LB_resume.gif|vdc_LB_resume_es.gif|vdc_LB_resume_fr.gif|vdc_LB_resume_de.gif|vdc_LB_resume_it.gif|vdc_LB_resume_pt.gif|vdc_LB_resume_el.gif||
vdc_LB_resume_OFF.gif|vdc_LB_resume_OFF_es.gif|vdc_LB_resume_OFF_fr.gif|vdc_LB_resume_OFF_de.gif|vdc_LB_resume_OFF_it.gif|vdc_LB_resume_OFF_pt.gif|vdc_LB_resume_OFF_el.gif||
vdc_LB_startrecording.gif|vdc_LB_startrecording_es.gif|vdc_LB_startrecording_fr.gif|vdc_LB_startrecording_de.gif|vdc_LB_startrecording_it.gif|vdc_LB_startrecording_pt.gif|vdc_LB_startrecording_el.gif||
vdc_LB_stoprecording.gif|vdc_LB_stoprecording_es.gif|vdc_LB_stoprecording_fr.gif|vdc_LB_stoprecording_de.gif|vdc_LB_stoprecording_it.gif|vdc_LB_stoprecording_pt.gif|vdc_LB_stoprecording_el.gif||
vdc_LB_transferconf.gif|vdc_LB_transferconf_es.gif|vdc_LB_transferconf_fr.gif|vdc_LB_transferconf_de.gif|vdc_LB_transferconf_it.gif|vdc_LB_transferconf_pt.gif|vdc_LB_transferconf_el.gif||
vdc_LB_transferconf_OFF.gif|vdc_LB_transferconf_OFF_es.gif|vdc_LB_transferconf_OFF_fr.gif|vdc_LB_transferconf_OFF_de.gif|vdc_LB_transferconf_OFF_it.gif|vdc_LB_transferconf_OFF_pt.gif|vdc_LB_transferconf_OFF_el.gif||
vdc_LB_webform.gif|vdc_LB_webform_es.gif|vdc_LB_webform_fr.gif|vdc_LB_webform_de.gif|vdc_LB_webform_it.gif|vdc_LB_webform_pt.gif|vdc_LB_webform_el.gif||
vdc_LB_webform_OFF.gif|vdc_LB_webform_OFF_es.gif|vdc_LB_webform_OFF_fr.gif|vdc_LB_webform_OFF_de.gif|vdc_LB_webform_OFF_it.gif|vdc_LB_webform_OFF_pt.gif|vdc_LB_webform_OFF_el.gif||
vdc_XB_blindtransfer.gif|vdc_XB_blindtransfer_es.gif|vdc_XB_blindtransfer_fr.gif|vdc_XB_blindtransfer_de.gif|vdc_XB_blindtransfer_it.gif|vdc_XB_blindtransfer_pt.gif|vdc_XB_blindtransfer_el.gif||
vdc_XB_blindtransfer_OFF.gif|vdc_XB_blindtransfer_OFF_es.gif|vdc_XB_blindtransfer_OFF_fr.gif|vdc_XB_blindtransfer_OFF_de.gif|vdc_XB_blindtransfer_OFF_it.gif|vdc_XB_blindtransfer_OFF_pt.gif|vdc_XB_blindtransfer_OFF_el.gif||
vdc_XB_dialwithcustomer.gif|vdc_XB_dialwithcustomer_es.gif|vdc_XB_dialwithcustomer_fr.gif|vdc_XB_dialwithcustomer_de.gif|vdc_XB_dialwithcustomer_it.gif|vdc_XB_dialwithcustomer_pt.gif|vdc_XB_dialwithcustomer_el.gif||
vdc_XB_dialwithcustomer_OFF.gif|vdc_XB_dialwithcustomer_OFF_es.gif|vdc_XB_dialwithcustomer_OFF_fr.gif|vdc_XB_dialwithcustomer_OFF_de.gif|vdc_XB_dialwithcustomer_OFF_it.gif|vdc_XB_dialwithcustomer_OFF_pt.gif|vdc_XB_dialwithcustomer_OFF_el.gif||
vdc_XB_hangupbothlines.gif|vdc_XB_hangupbothlines_es.gif|vdc_XB_hangupbothlines_fr.gif|vdc_XB_hangupbothlines_de.gif|vdc_XB_hangupbothlines_it.gif|vdc_XB_hangupbothlines_pt.gif|vdc_XB_hangupbothlines_el.gif||
vdc_XB_hangupbothlines_OFF.gif|vdc_XB_hangupbothlines_OFF_es.gif|vdc_XB_hangupbothlines_OFF_fr.gif|vdc_XB_hangupbothlines_OFF_de.gif|vdc_XB_hangupbothlines_OFF_it.gif|vdc_XB_hangupbothlines_OFF_pt.gif|vdc_XB_hangupbothlines_OFF_el.gif||
vdc_XB_hangupxferline.gif|vdc_XB_hangupxferline_es.gif|vdc_XB_hangupxferline_fr.gif|vdc_XB_hangupxferline_de.gif|vdc_XB_hangupxferline_it.gif|vdc_XB_hangupxferline_pt.gif|vdc_XB_hangupxferline_el.gif||
vdc_XB_hangupxferline_OFF.gif|vdc_XB_hangupxferline_OFF_es.gif|vdc_XB_hangupxferline_OFF_fr.gif|vdc_XB_hangupxferline_OFF_de.gif|vdc_XB_hangupxferline_OFF_it.gif|vdc_XB_hangupxferline_OFF_pt.gif|vdc_XB_hangupxferline_OFF_el.gif||
vdc_XB_internalcloser.gif|vdc_XB_internalcloser_es.gif|vdc_XB_internalcloser_fr.gif|vdc_XB_internalcloser_de.gif|vdc_XB_internalcloser_it.gif|vdc_XB_internalcloser_pt.gif|vdc_XB_internalcloser_el.gif||
vdc_XB_internalcloser_OFF.gif|vdc_XB_internalcloser_OFF_es.gif|vdc_XB_internalcloser_OFF_fr.gif|vdc_XB_internalcloser_OFF_de.gif|vdc_XB_internalcloser_OFF_it.gif|vdc_XB_internalcloser_OFF_pt.gif|vdc_XB_internalcloser_OFF_el.gif||
vdc_XB_leave3waycall.gif|vdc_XB_leave3waycall_es.gif|vdc_XB_leave3waycall_fr.gif|vdc_XB_leave3waycall_de.gif|vdc_XB_leave3waycall_it.gif|vdc_XB_leave3waycall_pt.gif|vdc_XB_leave3waycall_el.gif||
vdc_XB_leave3waycall_OFF.gif|vdc_XB_leave3waycall_OFF_es.gif|vdc_XB_leave3waycall_OFF_fr.gif|vdc_XB_leave3waycall_OFF_de.gif|vdc_XB_leave3waycall_OFF_it.gif|vdc_XB_leave3waycall_OFF_pt.gif|vdc_XB_leave3waycall_OFF_el.gif||
vdc_XB_localcloser.gif|vdc_XB_localcloser_es.gif|vdc_XB_localcloser_fr.gif|vdc_XB_localcloser_de.gif|vdc_XB_localcloser_it.gif|vdc_XB_localcloser_pt.gif|vdc_XB_localcloser_el.gif||
vdc_XB_localcloser_OFF.gif|vdc_XB_localcloser_OFF_es.gif|vdc_XB_localcloser_OFF_fr.gif|vdc_XB_localcloser_OFF_de.gif|vdc_XB_localcloser_OFF_it.gif|vdc_XB_localcloser_OFF_pt.gif|vdc_XB_localcloser_OFF_el.gif||
vdc_XB_parkcustomerdial.gif|vdc_XB_parkcustomerdial_es.gif|vdc_XB_parkcustomerdial_fr.gif|vdc_XB_parkcustomerdial_de.gif|vdc_XB_parkcustomerdial_it.gif|vdc_XB_parkcustomerdial_pt.gif|vdc_XB_parkcustomerdial_el.gif||
vdc_XB_parkcustomerdial_OFF.gif|vdc_XB_parkcustomerdial_OFF_es.gif|vdc_XB_parkcustomerdial_OFF_fr.gif|vdc_XB_parkcustomerdial_OFF_de.gif|vdc_XB_parkcustomerdial_OFF_it.gif|vdc_XB_parkcustomerdial_OFF_pt.gif|vdc_XB_parkcustomerdial_OFF_el.gif||
vdc_XB_hotkeysactive.gif|vdc_XB_hotkeysactive_es.gif|vdc_XB_hotkeysactive_fr.gif|vdc_XB_hotkeysactive_de.gif|vdc_XB_hotkeysactive_it.gif|vdc_XB_hotkeysactive_pt.gif|vdc_XB_hotkeysactive_el.gif||
vdc_XB_hotkeysactive_OFF.gif|vdc_XB_hotkeysactive_OFF_es.gif|vdc_XB_hotkeysactive_OFF_fr.gif|vdc_XB_hotkeysactive_OFF_de.gif|vdc_XB_hotkeysactive_OFF_it.gif|vdc_XB_hotkeysactive_OFF_pt.gif|vdc_XB_hotkeysactive_OFF_el.gif||
vdc_LB_senddtmf.gif|vdc_LB_senddtmf_es.gif|vdc_LB_senddtmf_fr.gif|vdc_LB_senddtmf_de.gif|vdc_LB_senddtmf_it.gif|vdc_LB_senddtmf_pt.gif|vdc_LB_senddtmf_el.gif||
vdc_LB_senddtmf_OFF.gif|vdc_LB_senddtmf_OFF_es.gif|vdc_LB_senddtmf_OFF_fr.gif|vdc_LB_senddtmf_OFF_de.gif|vdc_LB_senddtmf_OFF_it.gif|vdc_LB_senddtmf_OFF_pt.gif|vdc_LB_senddtmf_OFF_el.gif||
vdc_XB_header.gif|vdc_XB_header_es.gif|vdc_XB_header_fr.gif|vdc_XB_header_de.gif|vdc_XB_header_it.gif|vdc_XB_header_pt.gif|vdc_XB_header_el.gif||
vdc_XB_number.gif|vdc_XB_number_es.gif|vdc_XB_number_fr.gif|vdc_XB_number_de.gif|vdc_XB_number_it.gif|vdc_XB_number_pt.gif|vdc_XB_number_el.gif||
vdc_XB_channel.gif|vdc_XB_channel_es.gif|vdc_XB_channel_fr.gif|vdc_XB_channel_de.gif|vdc_XB_channel_it.gif|vdc_XB_channel_pt.gif|vdc_XB_channel_el.gif||
vdc_XB_seconds.gif|vdc_XB_seconds_es.gif|vdc_XB_seconds_fr.gif|vdc_XB_seconds_de.gif|vdc_XB_seconds_it.gif|vdc_XB_seconds_pt.gif|vdc_XB_seconds_el.gif||
vdc_tab_script.gif|vdc_tab_script_es.gif|vdc_tab_script.gif|vdc_tab_script.gif|vdc_tab_script.gif|vdc_tab_script.gif|vdc_tab_script.gif||
You have now logged out. Thank you|Usted ahora ha registrado hacia fuera. Gracias|Vous vous êtes maintenant déconnecté. Merci|Sie haben jetzt heraus geloggt. Danke|Ora avete annotato fuori. Grazie|Você tem registrado agora para fora. Obrigado|Έχετε αποσυνδεθεί. Σας ευχαριστούμε||
astGUIclient web-client VERSION|versión astGUIclient del tela-cliente|VERSION astGUIclient d'enchaînement-client|astGUIclient Netz-Klient VERSION|VERSIONE astGUIclient del fotoricettore-cliente|VERSÃO astGUIclient do correia-cliente|ΈΚΔΟΣΗ astGUIclient||
astGUIclient web client|web client astGUIclient|web client astGUIclient|astGUIclient web client|web client astGUIclient|web client astGUIclient|astGUIclient web client||
VICIDIAL web client|web client VICIDIAL|Web client de VICIDIAL|VICIDIAL web client|Web client di VICIDIAL|Web client de VICIDIAL|VICIDIAL web client||
VICIDIAL web-client version|versión web client VICIDIAL|Version d'enchaînement-client de VICIDIAL|VICIDIAL Netz-Klient Version|Versione del fotoricettore-cliente di VICIDIAL|Versão do correia-cliente de VICIDIAL|Έκδοση VICIDIAL||
You can only monitor Zap channels|Usted puede supervisa solamente Zap los canales|Vous pouvez surveillez seulement zap des canaux |Sie können überwachen nur Zap Führungen|Potete soltanto controllate zap le scanalature|Você pode monitora somente zap as canaletas|Μπορείτε μόνο να ελέγξετε τα κανάλια Zap||
Stop Record|Pare la grabación|Arrêtez Le Disque|Stoppen Sie Aufzeichnung|Arresti L'Annotazione|Pare O Registro|Τερματισμός Ηχογράφησης||
you are logged into this phone|su teléfono|votre téléphone|Ihr Telefon|il vostro telefono|seu telefone|είσαστε σε σύνδεση με το τηλέφωνο ||
Back to Main Window|Volver a la pantalla principal|De nouveau à la fenêtre principale|Zurück zu Hauptfenster|Di nuovo alla finestra principale|Para trás à janela principal|Επιστροφή στο κύριο παράθυρο||
LIVE CALLS ON THIS PHONE|LLAMADAS ACTIVAS EN ESTE TELÉFONO|DE PHASE INVITE CE TÉLÉPHONE|PHASEN ERSUCHT UM DIESES TELEFON|IN TENSIONE INVITA QUESTO TELEFONO|VIVO CONVIDA ESTE TELEFONE|ΕΝΕΡΓΕΣ ΚΛΗΣΕΙΣ ΣΕ ΑΥΤΟ ΤΟ ΤΗΛΕΦΩΝΟ||
LIVE CALLS IN THIS CONFERENCE|LLAMADAS ACTIVAS EN ESTA CONFERENCIA|VIVENT LES APPELS DANS CETTE CONFÉRENCE|LEBEN ANRUFE IN DIESER KONFERENZ|VIVONO LE CHIAMATE IN QUESTO CONGRESSO|VIVEM AS CHAMADAS NCESTA CONFERÊNCIA|ΕΝΕΡΓΕΣ ΚΛΗΣΕΙΣ ΣΕ ΑΥΤΗΝ ΤΗΝ ΔΙΑΣΚΕΨΗ||
LIVE CALL TRANSFER|TRANSFERIR LLAMADA ACTIVA|TRANSFERT DE PHASE D'APPEL|PHASENANRUF-ÜBERTRAGUNG|TRASFERIMENTO IN TENSIONE DI CHIAMATA|TRANSFERÊNCIA VIVA DA CHAMADA|ΜΕΤΑΦΟΡΑ ΕΝΕΡΓΗΣ ΚΛΗΣΗΣ||
CLIENT CHANNEL|CANAL CLIENTE|LA MANCHE DE CLIENT|KLIENT FÜHRUNG|MANICA DEL CLIENTE|CANALETA DO CLIENTE|ΚΑΝΑΛΙ ΠΕΛΑΤΩΝ||
REMOTE CHANNEL|CANAL REMOTO|LA MANCHE À DISTANCE|REMOTEFÜHRUNG|MANICA A DISTANZA|CANALETA REMOTA|ΑΠΟΜΑΚΡΟ ΚΑΝΑΛΙ||
CLICK HERE TO LOG IN AGAIN|PINCHA AQUÍ PARA ENTRAR OTRA VEZ|CLIC ICI À L'OUVERTURE ENCORE|KLICKEN SIE HIER, UM INNEN WIEDER ZU LOGGEN|SCATTISI QUI PER ENTRARE ANCORA|ESTALE AQUI PARA LOGON OUTRA VEZ|ΕΠΙΛΕΞΤΕ ΕΔΩ ΓΙΑ ΝΑ ΣΥΝΔΕΘΕΙΤΕ ΠΑΛΙ||
ACTIVE DISPLAY PAUSED|DISPLAY ACTIVO PAUSADO|L'AFFICHAGE ACTIF A FAIT UNE PAUSE|AKTIVE ANZEIGE PAUSIERTE|L'ESPOSIZIONE ATTIVA HA FATTO UNA PAUSA|A EXPOSIÇÃO ATIVA PAUSOU|ΠΑΥΣΗ ΕΝΕΡΓΗΣ ΟΘΟΝΗΣ||
Main Panel|Pantalla Principal|Panneau Principal|Hauptverkleidung|Pannello Principale|Painel Principal|Κύριος Πίνακας||
Active Lines Panel|Pantalla Lineas Activas|Lignes Actives Panneau|Aktive Linien Verkleidung|Linee Attive Pannello|Linhas Ativas Painel|Πίνακας Ενεργών Γραμμών||
Conferences Panel|Pantalla de Conferencias|Panneau De Conférences|Konferenz-Verkleidung|Pannello Di Congressi|Painel Das Conferências|Πίνακας διασκέψεων||
Check Voicemail|Comprobar buzón de voz|Vérifiez Voicemail|Überprüfen Sie Voicemail|Controlli Voicemail|Verifique Voicemail|Ελεγχος Φωνητικού ταχυδρομείου||
Live Call|Llamada Activa|Vivent L'Appel|Leben Anruf|Vive La Chiamata|Vive A Chamada|Ενεργή κλήση||
Hangup Trunk|Colgar Trunk|Tronc De Décrochement|Hängezustand-Stamm|Tronco Di Hangup|Tronco Do Hangup|Κλείσιμο Trunk||
Hijack Trunk|Capturar Trunk|Tronc De Détournement|Straßenräuber-Stamm|Tronco Di Dirottamento|Tronco Do Hijack|Κλέψιμο Trunk||
Listen Trunk|Escuchar Trunk|Écoutent Le Tronc|Hören Stamm|Ascolta Il Tronco|Escuta O Tronco|Ακούστε Trunk||
Active Local Menu|Menú Local Activa|Menu Local Actif|Aktives Lokales Menü|Menu Locale Attivo|Menu Local Ativo|Ενεργές Τοπικές Επιλογές||
Hangup Local|Colgar Local|Gens du pays De Décrochement|Hängezustand-Einheimischer|Local Di Hangup|Local Do Hangup|Κλείσιμο τοπικού||
Hijack Local|Capturar Local|Gens du pays De Détournement|Straßenräuber-Einheimischer|Local Di Dirottamento|Local Do Hijack|Κλέψιμο τοπικού||
Listen Local|Escuchar Local|Écoutent Les Gens du pays|Hören Einheimischer|Ascolta Il Local|Escuta O Local|Ακούστε τοπικό||
Channel to be transferred|Canal que va a ser transferido|La Manche à transférer|Gebracht zu werden Führung|Manica da trasferire|Canaleta a ser transferida|Κανάλι που μεταφέρεται||
Extensions Menu|Menú Extensiones|Menu De Prolongements|Verlängerungen Menü|Menu Di Estensioni|Menu Das Extensões|Επιλογές τηλ. συνδέσεων||
Send to selected extension|Envíe a la extensión seleccionada|Envoyez à la prolongation choisie|Senden Sie zu vorgewählter Verlängerung|Trasmetta all'estensione selezionata|Emita à extensão selecionada|Στείλε στην επιλεγμένη τηλ.σύνδεση||
Send to selected vmail box|Enviar al buzón de voz seleccionada|Envoyez dans la boîte choisie de vmail|Senden Sie zu vorgewähltem vmail Kasten|Trasmetta alla scatola selezionata del vmail|Emita à caixa selecionada do vmail|Στείλε στο επιλεγμένο vmail||
Send to this number|Envíe a este número|Envoyez à ce nombre|Senden Sie zu dieser Zahl|_ trasmett questo numero|Emita a este número|Στείλε σε αυτόν τον αριθμό||
click on a number below to send to a conference|Pinchar en un número de abajo para enviar a una conferencia|cliquez sur un nombre ci-dessous pour envoyer à une|klicken Sie an eine Zahl unten, um zu einer Konferenz zu senden|scatti sopra un numero qui sotto per trasmettere ad un congresso|estale sobre um número abaixo para emitir a uma conferência|επιλέξτε έναν αριθμό κατωτέρω που θα σταλεί σε μια διάσκεψη||
Send my channel too|Enviar mi canal también|Envoyez mon canal aussi|Senden Sie meine Führung auch|Trasmetta la mia scanalatura anche|Emita minha canaleta demasiado|Στείλε το κανάλι μου επίσης||
Conferences Menu|Menú de Conferencias|Menu De Conférences|Konferenz-Menü|Menu Di Congressi|Menu Das Conferências|Επιλογές διασκέψεων||
LOCAL Extensions Dial|Marcar a Extensiones LOCALES|Cadran LOCAL De Prolongements|LOKALER Verlängerungen Vorwahlknopf|Manopola LOCALE Di Estensioni|Seletor LOCAL Das Extensões|ΤΟΠΙΚΕΣ τηλ. συνδέσεις Κλήσεως||
Phone calling from|Teléfono llamando desde|Téléphone appelant de|Telefon, das von benennt|Telefono che denomina da|Telefone que chama-se de|Τηλέφωνο που καλεί από||
Call selected extension|Llamar extensión seleccionada|Prolongation choisie par appel|Anruf vorgewählte Verlängerung|Estensione selezionata chiamata|Extensão selecionada chamada|Επιλεγμένη κλήση τηλ. σύνδεσης||
Call selected vmail box|Llamar buzón de voz seleccionado|Boîte de vmail choisie par appel|Anruf vorgewählter vmail Kasten|Scatola del vmail selezionata chiamata|Caixa selecionada chamada do vmail|Επιλεγμένη κλήση vmail||
LOCAL DIAL EXTENSIONS|MARCAR EXTENSIONES LOCALES|PROLONGEMENTS LOCAUX DE CADRAN|LOKALE VORWAHLKNOPF-VERLÄNGERUNGEN|ESTENSIONI LOCALI DELLA MANOPOLA|EXTENSÕES LOCAIS DO SELETOR|ΤΗΛ. ΣΥΝΔΕΣΕΙΣ ΤΟΠΙΚΗΣ ΚΛΗΣΗΣ||
OUTBOUND CALLS|LLAMADAS SALIENTES|APPELS EN PARTANCE|OUTBOUND ANRUFE|CHIAMATE OUTBOUND|CHAMADAS OUTBOUND |ΕΞΕΡΧΟΜΕΝΕΣ ΚΛΗΣΕΙΣ||
INBOUND CALLS|LLAMADAS ENTRANTES|APPELS D'ARRIVÉE|INBOUND ANRUFE|CHIAMATE INBOUND|CHAMADAS INBOUND|ΕΙΣΕΡΧΟΜΕΝΕΣ ΚΛΗΣΕΙΣ||
Refresh rate|Actualizar la tarifa|La vitesse de régénération|Erneuern Sie Rate|La velocità di rinfrescamento|Refresque a taxa|Ποσοστό ανανέωσης||
MANUAL DIAL|MARCADO MANUAL|CADRAN MANUEL|MANUELLER VORWAHLKNOPF|MANOPOLA MANUALE|SELETOR MANUAL|ΧΕΙΡΩΝΑΚΤΙΚΗ ΚΛΗΣΗ||
CALL DATE/TIME|FECHA/HORA DE LA LLAMADA|DATE/HEURE D'APPEL|ANRUFDATE/TIME|DATE/TIME DI CHIAMATA|DATE/TIME DA CHAMADA|ΗΜΕΡΟΜΗΝΙΑ/ΧΡΟΝΟΣ ΚΛΗΣΗΣ||
LOCAL HANGUP|Colgar Local|DÉCROCHEMENT LOCAL|LOKALER HÄNGEZUSTAND|HANGUP LOCALE|HANGUP LOCAL|ΤΟΠΙΚΟ ΚΛΕΙΣΙΜΟ ΤΗΛΕΦΩΝΟΥ||
PARKED CALLS|LLAMADAS APARCADAS|APPELS GARÉS|GEPARKTE ANRUFE|CHIAMATE PARCHEGGIATE|CHAMADAS ESTACIONADAS|ΣΤΑΘΜΕΥΜΕΝΕΣ ΚΛΗΣΕΙΣ||
PARKED BY|APARCAR POR|GARÉ PRÈS|VORBEI GEPARKT|PARCHEGGIATO VICINO|ESTACIONADO PERTO|ΣΤΑΘΜΕΥΜΕΝΕΣ ΑΠΟ||
PARKED TIME|TIEMPO EN PARKING|TEMPS GARÉ|GEPARKTE ZEIT|TEMPO PARCHEGGIATO|TEMPO ESTACIONADO|ΧΡΟΝΟΣ ΣΤΑΘΜΕΥΣΗΣ||
Registered to|Registrado a|Enregistré à|Registriert zu|Registrato a|Registado a|Καταχωρημένος||
Enter Conference|Entrar en la conferencia|Écrivez La Conférence|Tragen Sie Konferenz Ein|Entri Nel Congresso|Incorpore A Conferência|Συμμετοχή στη διάσκεψη||
Dial From Conf|Marcar desde la Conf|Cadran de conf |Vorwahlknopf Von Conf|Manopola Da Conf|Seletor De Conf|Κληση από τη διάσκεψη||
Active Extensions|Extensiones Activas|Prolongements Actifs|Aktive Verlängerungen|Estensioni Attive|Extensões Ativas|Ενεργές τηλ. συνδέσεις||
Outside Lines|Líneas de salida|Lignes Extérieures|Äußere Linien|Linee Esterne|Linhas Exteriores|Εξωτερικές γραμμές||
Local Extensions|Extensiones Locales|Prolongements Locaux|Lokale Verlängerungen|Estensioni Locali|Extensões Locais|Τοπικές τηλ. συνδέσεις||
Data Goes Here|Los Datos Van Aquí|Les Données Vont Ici|Daten Gehen Hier|I Dati Vanno Qui|Os Dados Vão Aqui|Τα δεδομένα πηγαίνουν εδώ||
Trunk Action|Acciones en Trunk|Action De Tronc|Stamm-Tätigkeit|Azione Del Tronco|Ação Do Tronco|Κίνηση Trunk||
Local Action|Acción Local|Action Locale|Lokale Tätigkeit|Azione Locale|Ação Local|Τοπική Κίνηση||
Conferences List|Lista De las Conferencias|Liste De Conférences|Konferenz-Liste|Lista Di Congressi|Lista Das Conferências|Κατάλογος διασκέψεων||
Click on a conference room number on the left for info on that conference|Pinchar a la izquierda del número de una sala de conferencias para obtener información|Cliquez sur un nombre de salle de conférence du côté gauche|Klicken Sie an Konferenzzimmernummer auf dem links für Info auf|Scatti sopra un numero di stanza di congresso a sinistra per l'Info su|Estale sobre um número de quarto da conferência na esquerda para o|Επιλέξτε έναν αριθμό δωματίου διάσκεψης στα αριτερά για τις πληροφορίες σε εκείνη την διάσκεψη||
List Display|Mostrar Listas|Affichage De Liste|Liste Anzeige|Esposizione Della Lista|Exposição Da Lista|Κατάλογος Οθόνης||
Live Extensions|Extensiones Activas|Prolongements De phase|Phasenverlängerungen|Estensioni In tensione|Extensões Vivas|Ενεργές τηλ. συνδέσεις||
Busy Extensions|Extensiones Ocupadas|Prolongements Occupés|Beschäftigte Verlängerungen|Estensioni Occupate|Extensões Ocupadas|Απασχολημένες τηλ. συνδέσεις||
Outside Lines|Extensiones Salientes|Lignes Extérieures|Äußere Linien|Linee Esterne|Linhas Exteriores|Εξωτερικές γραμμές||
script runtime|tiempo de ejecución del Script|temps d'exécution de manuscrit|Indexlaufzeit|tempo di esecuzione dello scritto|runtime do certificado|χρόνος εκτέλεσης||
Call Log Display|Motrar el registro de llamadas|Affichage De Notation D'Appel|Anruf-Maschinenbordbuch-Anzeige|Esposizione Del Ceppo Di Chiamata|Exposição Do Registro Da Chamada|Έμφάνιση Καταγραμμένων Κλήσεων||
is not valid|No es válido|est inadmissible|ist unzulässig|è non valido|é inválido|δεν ισχύει||
or protocol|o protocolo|ou protocole|oder Protokoll|o protocollo|ou protocolo|ή πρωτόκολλο||
Conf Extension Check|Comprobar la Extensión de Conf|Contrôle De Prolongation De Conf|Conf Verlängerung Überprüfung|Controllo Di Estensione Di Conf|Verificação Da Extensão De Conf|Έλεγχος τηλ.σύνδεσης διάσκεψης||
has been registered to|Ha sido registrado para|a été enregistré à|ist zu registriert worden|è stato registrato a|foi registado a|έχει καταχωρηθεί||
LIVE INBOUND CALL|LLAMADA DE ENTRADA ACTIVA|APPEL D'ARRIVÉE DE PHASE|INBOUND LEBHAFTANRUF|CHIAMATA INBOUND IN TENSIONE|CHAMADA INBOUND VIVA|ΕΝΕΡΓΗ ΕΙΣΕΡΧΟΜΕΝΗ ΚΛΗΣΗ||
Number Dialed|Número Marcado|Numéro Composé|Nummer Gewählt|Il Numero Ha composto|O Número Marcou|Αριθμός που καλέσατε||
SEND TO MY VOICEMAIL|ENVIAR A MI BUZÓN DE VOZ|ENVOYEZ À MON VOICEMAIL|SENDEN SIE ZU MEINEM VOICEMAIL|TRASMETTA AL MIO VOICEMAIL|EMITA A MEU VOICEMAIL|ΣΤΕΙΛΕ ΣΤΟ ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ ΜΟΥ||
Live Extension Check|Comprobar Extensión Activa|Contrôle De phase De Prolongation|Phasenverlängerung Überprüfung|Controllo In tensione Di Estensione|Verificação Viva Da Extensão|Ελεγχος ενεργής τηλ.σύνδεσης||
Manager Send|Enviar al Manager|Le Directeur Envoient|Manager Senden|Il Responsabile Trasmette|O Gerente Emite|Ο διευθυντής στέλνει||
command not inserted|comando no insertado|commande non insérée|Befehl nicht eingesetzt|ordine non inserito|comando não introduzido|εντολή που δεν έγινε εισαγωγή||
command sent for|comando enviado a|commande envoyée pour|Befehl gesendet für|ordine trasmesso per|comando emitido para|εντολή που στέλνεται για||
One of these variables|Una de estas variables|Une de ces variables|Eine dieser Variablen|Una di queste variabili|Uma destas variáveis|Μία από αυτές τις μεταβλητές||
must be greater than 2 characters|debe ser mayor de 2 caracteres|doivent être les 2 caractères plus grands que|muß als 2 Buchstaben grösser sein|deve essere più grande di 2 caratteri|deve ser mais grande de 2 caráteres|πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες||
must be greater than 14 characters|debe ser mayor de 14 caracteres|doivent être les 14 caractères plus grands que|muß als 14 Buchstaben grösser sein|deve essere più grande di 14 caratteri|deve ser mais grande de 14 caráteres|πρέπει να είναι μεγαλύτερος από 14 χαρακτήρες||
must be set|debe ser fijado|doit être placé|muß eingestellt werden|deve essere regolato|deve ser ajustado|πρέπει να τεθεί||
not sent|no enviado|non envoyé|nicht gesendet|non trasmesso|não emitido|μην σταλμένος||
Cannot find empty conference|No puede encontrar conferencia vacía|Ne peut pas trouver la conférence vide|Kann nicht leere Konferenz finden|Non può trovare il congresso vuoto|Não pode encontrar a conferência vazia|Δεν υπάρχει κενή διάσκεψη||
is not live|no está activo|n'est pas de phase|ist nicht Phasen|non è in tensione|não está vivo|δεν είναι ενεργό||
RECORDING WILL LAST UP TO 60 MINUTES|LA GRABACIÓN DURARÁ HASTA 60 MINUTOS|L'ENREGISTREMENT DURERA JUSQU'À 60 MINUTES|AUFNAHME DAUERT BIS 60 MINUTEN|LA REGISTRAZIONE DURERÀ FINO A 60 MINUTI|A GRAVAÇÃO DURARÁ ATÉ 60 MINUTOS|Η ΚΑΤΑΓΡΑΦΗ ΘΑ ΔΙΑΡΚΕΣΕΙ ΜΕΧΡΙ 60 ΛΕΠΤΑ||
Parked Calls Display|Mostrar Llamadas Aparcadas|Affichage Garé D'Appels|Geparkte Anruf-Anzeige|Esposizione Parcheggiata Di Chiamate|Exposição Estacionada Das Chamadas|Εμφάνιση Σταθμευμένων Κλήσεων||
Database Query Script|Database Query Script|Manuscrit De Question De Base de données|Datenbank-Frage Index|Scritto Di Domanda Della Base di dati|Certificado Da Pergunta Da Base de dados|Κώδικας ερώτησης βάσεων δεδομένων||
Group Choice|Opción Del Grupo|Choix De Groupe|Gruppe Wahl|Scelta Del Gruppo|Escolha Do Grupo|Επιλογή ομάδας||
has been registered to user|se ha registrado al usuario|a été enregistré à l'utilisateur|ist zum Benutzer registriert worden|è stato registrato all'utente|foi registado ao usuário|έχει καταχωρηθεί στο χρήστη||
HOPPER EMPTY|TOLVA VACÍA|DISTRIBUTEUR VIDE|ZUFUHRBEHÄLTER LEER|TRAMOGGIA VUOTA|FUNIL VAZIO|ΚΕΝΟΣ HOPPER||
LOG NOT ENTERED|REGISTRO NO ENTRADO|NOTATION NON ENTRÉE|MASCHINENBORDBUCH NICHT BETRETEN|CEPPO NON INSERITO|REGISTRO NÃO ENTRADO|ΔΕΝ ΕΓΙΝΕ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΑΤΑΓΡΑΦΗ ΓΕΓΟΝΟΤΩΝ||
has been changed to|se ha cambiado a|a été changé en|ist zu geändert worden|è stato cambiato a|foi mudado a|έχει αλλαχτεί||
information has been updated|La información ha sido actualizada|l'information a été mise à jour|Informationen sind aktualisiert worden|le informazioni sono state aggiornate|a informação foi atualizada|οι πληροφορίες έχουν ενημερωθεί||
is now in status|ahora está en estado|est maintenant dans le statut|ist jetzt im Status|è ora nella condizione|está agora no status|είναι τώρα στη κατάσταση||
Voicemail Check|Comprobar el buzón de voz|Contrôle De Voicemail|Voicemail Überprüfung|Controllo Di Voicemail|Verificação De Voicemail|Έλεγχος φωνητικού ταχυδρομείου||
voicemail box|caja del buzón de voz|boîte de voicemail|voicemail Kasten|scatola del voicemail|caixa do voicemail|Κουτί φωνητικού ταχυδρομείου||
Re-Login|Conexión Otra Vez|Re-Ouverture|Re-LOGON|Re-Inizio attività|Re-Início de uma sessão|Επανασύνδεση||
User Password|Contraseña Del Usuario|Mot de passe D'Utilisateur|Benutzer-Kennwort|Parola d'accesso Dell'Utente|Senha Do Usuário|Κωδικός πρόσβασης χρήστη||
User Login|Conexión Del Usuario|Ouverture D'Utilisateur|Benutzer-LOGON|Inizio attività Dell'Utente|Início de uma sessão Do Usuário|Σύνδεση χρήστη||
Phone Login|Conexión Del Teléfono|Ouverture De Téléphone|Telefon-LOGON|Inizio attività Del Telefono|Início de uma sessão Do Telefone|Σύνδεση Τηλεφώνου||
Phone Password|Contraseña Del Teléfono|Mot de passe De Téléphone|Telefon-Kennwort|Parola d'accesso Del Telefono|Senha Do Telefone|Κωδικός πρόσβασης Τηλεφώνου||
Campaign not active, please try again|La campaña no está activa, intentelo otra vez, por favor|La campagne non active, essayent svp encore|Die aktive Kampagne nicht, versuchen bitte noch einmal|La campagna non attiva, prova prego ancora|A campanha nao ativa, tenta por favor outra vez|Η εκστρατεία είναι μη ενεργή, παρακαλώ προσπαθήστε πάλι||
Login incorrect, please try again|La conexión incorrecta, intentelo otra vez, por favor|L'ouverture incorrecte, essayent svp encore|Der falsche LOGON, versuchen bitte noch einmal|L'inizio attività errato, prova prego ancora|O início de uma sessão incorreto, tenta por favor outra vez|Η σύνδεση δεν είναι σωστή, παρακαλώ προσπαθήστε πάλι||
Campaign Login|Conexión en la Campaña|Ouverture De Campagne|Kampagne LOGON|Inizio attività Di Campagna|Início de uma sessão Da Campanha|Σύνδεση εκστρατείας||
Sorry, your phone login and password are not active in this system, please try again|Disculpe, la conexión del teléfono y contraseña no están activos en este sistema, intentelo otra vez por favor|Désolé, votre ouverture de téléphone et mot de passe ne soyez pas|Traurig, Ihr Telefon-LOGON und Kennwort seien Sie nicht in diesem|Spiacente, il vostri inizio attività del telefono e parola d'accesso|Pesaroso, seus início de uma sessão do telefone e senha não seja|Συγγνώμη, αλλά η τηλεφωνική σύνδεση και ο κωδικός πρόσβασής σας δεν είναι ενεργά σε αυτό το σύστημα, παρακαλώ προσπαθήστε πάλι||
leads left to call in hopper|Leads a la izquierda para llamar en Hopper|mène à gauche à appeler dans le distributeur|führt nach links, um im Zufuhrbehälter zu benennen|conduce a sinistra per denominare in tramoggia|conduz à esquerda para chamar-se no funil|καθοδηγητές που απέμειναν για κλήση στον hopper||
CAMPAIGN CUSTOM PARKING|PARKING PERSONALIZADO DE LA CAMPAÑA|STATIONNEMENT FAIT SUR COMMANDE DE CAMPAGNE|KAMPAGNE KUNDENSPEZIFISCHES PARKEN|PARCHEGGIO SU ORDINAZIONE DI CAMPAGNA|ESTACIONAMENTO FEITO SOB ENCOMENDA DA CAMPANHA|ΠΡΟΣΑΡΜΟΣΜΕΝΟΣ ΧΩΡΟΣ ΣΤΑΘΜΕΥΣΗΣ ΕΚΣΤΡΑΤΕΙΑΣ||
CAMPAIGN DEFAULT PARKING|PARKING POR DEFECTO DE LA CAMPAñA|STATIONNEMENT DE DÉFAUT DE CAMPAGNE|KAMPAGNE RÜCKSTELLUNG PARKEN|PARCHEGGIO DI DIFETTO DI CAMPAGNA|ESTACIONAMENTO DO DEFEITO DA CAMPANHA|ΠΡΟΕΠΙΛΟΓΗ ΧΩΡΟΥ ΣΤΑΘΜΕΥΣΗΣ ΕΚΣΤΡΑΤΕΙΑΣ||
CAMPAIGN CUSTOM WEB FORM|FORMULARIO WEB PERSONALIZADO DE LA CAMPAÑA|FORME FAITE SUR COMMANDE DE WEB DE CAMPAGNE|KAMPAGNE KUNDENSPEZIFISCHE NETZ-FORM|FORMA SU ORDINAZIONE DI FOTORICETTORE DI CAMPAGNA|FORMULÁRIO FEITO SOB ENCOMENDA DA CORREIA FOTORRECEPTORA DA CAMPANHA|ΠΡΟΣΑΡΜΟΣΜΕΝΗ ΙΣΤΟΣΕΛΙΔΑ ΕΚΣΤΡΑΤΕΙΑΣ||
CAMPAIGN DEFAULT WEB FORM|FORMULARIO WEB POR DEFECTO DE LA CAMPAÑA|FORME DE WEB DE DÉFAUT DE CAMPAGNE|KAMPAGNE RÜCKSTELLUNG NETZ-FORM|FORMA DI FOTORICETTORE DI DIFETTO DI CAMPAGNA|FORMULÁRIO DA CORREIA FOTORRECEPTORA DO DEFEITO DA CAMPANHA|ΠΡΟΕΠΙΛΟΓΗ ΙΣΤΟΣΕΛΙΔΑΣ ΕΚΣΤΡΑΤΕΙΑΣ||
CAMPAIGN ALLOWS CLOSERS|LA CAMPAÑA PERMITE CLOSERS|LA CAMPAGNE PERMET CLOSERS|KAMPAGNE ERLAUBT CLOSERS|LA CAMPAGNA PERMETTE CLOSERS|A CAMPANHA PERMITE CLOSERS|Η ΕΚΣΤΡΑΤΕΙΑ ΕΠΙΤΡΕΠΕΙ CLOSERS||
CAMPAIGN ALLOWS NO CLOSERS|LA CAMPAÑA NO PERMITE CLOSERS|LA CAMPAGNE NE PERMET AUCUN CLOSERS|KAMPAGNE ERLAUBT KEIN CLOSERS|LA CAMPAGNA NON PERMETTE CLOSERS|A CAMPANHA NÃO PERMITE NENHUM CLOSERS|Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΕΠΙΤΡΕΠΕΙ ΚΑΝΕΝΑ CLOSERS||
USING PREVIOUS MEETME ROOM|USAR EL SITIO ANTERIOR DE MEETME|EMPLOYER LA PIÈCE PRÉCÉDENTE DE MEETME|VERWENDEN DES VORHERGEHENDEN MEETME RAUMES|USANDO LA STANZA PRECEDENTE DI MEETME|USANDO O QUARTO PRECEDENTE DE MEETME|ΧΡΗΣΙΜΟΠΟΙΗΣΗ ΠΡΟΗΓΟΥΜΕΝΟΥ ΔΩΜΑΤΙΟΥ MEETME||
USING NEW MEETME ROOM|USAR EL NUEVO SITIO DE MEETME|EMPLOYER LA NOUVELLE PIÈCE DE MEETME|VERWENDEN DES NEUEN MEETME RAUMES|USANDO LA NUOVA STANZA DI MEETME|USANDO O QUARTO NOVO DE MEETME|ΧΡΗΣΙΜΟΠΟΙΗΣΗ ΝΕΟΥ ΔΩΜΑΤΟΥ MEETME||
old QUEUE and INCALL reverted list|vieja COLA y lista invertida INCALL|vieille FILE D'ATTENTE et liste retournée par INCALL|alte WARTESCHLANGE und INCALL umgeschaltete Liste|vecchia CODA e lista ritornata INCALL|FILA velha e lista reverted INCALL|παλιά ΣΕΙΡΑ ΑΝΑΜΟΝΗΣ και σε-κλήση κλήσεις επαναστρέφουν την Λίστα||
old QUEUE and INCALL reverted hopper|vieja COLA y tolva invertida INCALL|vieille FILE D'ATTENTE et distributeur retourné par INCALL|alte WARTESCHLANGE und INCALL umgeschalteter Zufuhrbehälter|vecchia CODA e tramoggia ritornata INCALL|FILA velha e funil reverted INCALL|παλιά ΣΕΙΡΑ ΑΝΑΜΟΝΗΣ και σε-κλήση κλήσεις επαναστρέφουν τον hopper||
old vicidial_live_agents records cleared|viejos expedientes de los vicidial_live_agents despejados|vieux disques de vicidial_live_agents dégagés|alte vicidial_live_agents Aufzeichnungen löschten|vecchie annotazioni dei vicidial_live_agents eliminate|os registros velhos dos vicidial_live_agents cancelaram|καθαρισμός παλαιών εγγραφών vicidial_live_agents||
campaign is set to auto_dial_level|la campaña se fija al auto_dial_level|la campagne est placée à l'auto_dial_level|Kampagne wird auf auto_dial_level eingestellt|la campagna è regolata a auto_dial_level|a campanha é ajustada ao auto_dial_level|η εκστρατεία τίθεται στην αυτόματη κλήση||
new vicidial_live_agents record inserted|Insertadas las grabaciones nueva de los vicidial_live_agents|nouveau disque de vicidial_live_agents inséré|neue vicidial_live_agents Aufzeichnung eingesetzt|la nuova annotazione dei vicidial_live_agents ha inserito|o registro novo dos vicidial_live_agents introduziu|νέο εισαγωγή εγγραφής vicidial_live_agents||
campaign is set to manual dial|la campaña está configurada con marcaje manual|la campagne est placée au cadran manuel|Kampagne wird auf manuellen Vorwahlknopf eingestellt|la campagna è regolata alla manopola manuale|a campanha é ajustada ao seletor manual|η εκστρατεία τίθεται στη χειρωνακτική κλήση||
Sorry, there are no leads in the hopper for this campaign|Lo siento, no hay leads en el hopper de esta campaña|Désolé, il n'y a aucun fil dans le distributeur pour cette campagne|Traurig, gibt es keine Leitungen im Zufuhrbehälter für diese|Spiacenti, non ci sono cavi nella tramoggia per questa campagna|Pesaroso, não há nenhuma ligação no funil para esta campanha|Συγγνώμη, δεν υπάρχουν καθοδηγητές στον hopper για αυτήν την εκστρατεία||
Dial Next Number|Marcar el Siguiente Número|Prochain Nombre De Cadran|Vorwahlknopf-Folgende Zahl|Numero Seguente Della Manopola|Número Seguinte Do Seletor|Κλήση επόμενου αριθμού||
LIVE CALLS IN YOUR SESSION|LLAMADAS ACTIVAS EN SU SESIÓN|VIVENT LES APPELS EN VOTRE SESSION|LEBEN ANRUFE IN IHREM LERNABSCHNITT|VIVONO LE CHIAMATE NELLA VOSTRA SESSIONE|VIVEM AS CHAMADAS EM SUA SESSÃO|ΕΝΕΡΓΕΣ ΚΛΗΣΕΙΣ ΣΤΗ ΣΥΝΟΔΟ ΣΑΣ||
Stop Recording|Parar La Grabación|Cessez L'Enregistrement|Stoppen Sie Zu notieren|Smetta Di registrare|Pare de Gravar|Στάση καταγραφής||
Start Recording|Comenzar La Grabación|Commencez À enregistrer|Fangen Sie an Zu notieren|Inizi A registrare|Comece Gravar|Εναρξη καταγραφής||
Transfer number must have more than 1 digit|El número de la transferencia debe tener más de 1 dígito|Le nombre de transfert doit avoir plus de 1 chiffre|Übergangszahl muß mehr als 1 Stelle haben|Il numero di trasferimento deve avere più di 1 cifra|O número de transferência deve ter mais de 1 dígito|Ο αριθμός σε μεταφορά πρέπει να έχει περισσότερο από 1 ψηφίο||
Grab Parked Call|Capturar llamada en Parking|Appel Garé Par Encavateur|Zupacken Geparkter Anruf|Chiamata Parcheggiata Gru a benna|Chamada Estacionada Garra|Αρπαγμα σταθμευμένης κλήσης||
Park Call|Aparcar llamada|Appel De Parc|Park-Anruf|Chiamata Del Parco|Chamada Do Parque|Στάθμευση Κλήσης||
Waiting for Ring|Espeerar al Ring|Anneau d'attente|Wartering|Anello attendente|Anel de espera|Αναμονή για κουδούνισμα||
Called 3rd party|Terceros llamados|Tiers appelé|Angerufene 3. Partei|Terzi denominati|Ó partido chamado|Κλήση 3 συμβαλλόμενου μέρους||
LEAVE 3-WAY CALL|ABANDONAR LLAMADA 3-WAY|APPEL DU CONGÉ 3-WAY|ANRUF DES URLAUB-3-WAY|CHIAMATA DI PERMESSO 3-WAY|CHAMADA DA LICENÇA 3-WAY|ΑΠΟΧΩΡΗΣΗ 3WAY ΚΛΗΣΗΣ||
Dial With Customer|Marcar Con El Cliente|Cadran Avec Le Client|Vorwahlknopf Mit Kunden|Manopola Con Il Cliente|Seletor Com Cliente|Κλήση με τον πελάτη||
Park Customer Dial|Dial Del Cliente Del Parque|Cadran De Client De Parc|Park-Kunde Vorwahlknopf|Manopola Del Cliente Del Parco|Seletor Do Cliente Do Parque|Στάθμευση κλήσης πελάτη||
Hangup Xfer Line|Colgar Línea Xfer |Ligne De Xfer De Décrochement|Hängezustand Xfer Linie|Linea Di Xfer Di Hangup|Linha De Xfer Do Hangup|Κλείσιμο Γραμμής Xfer||
Hangup Both Lines|Colgar Ambas Líneas|Décrochement Les deux Lignes|Hängezustand Beide Linien|Hangup Entrambe le Linee|Hangup Ambas as Linhas|Κλείσιμο και τις δύο γραμμές||
Hangup Customer|Colgar al Cliente|Client De Décrochement|Hängezustand-Kunde|Cliente Di Hangup|Cliente Do Hangup|΄Κλείσιμο Πελάτη||
Transfer - Conference|Transferencia - Conferencia|Transfert - Conférence|Übertragung - Konferenz|Trasferimento - Congresso|Transferência - Conferência|Μεταφορά - διάσκεψη||
LOCAL CLOSER|CLOSER LOCAL|GENS DU PAYS PLUS ÉTROITS|EINHEIMISCHER GENAUER|LOCAL PIÙ VICINO|LOCAL MAIS PRÓXIMO|ΤΟΠΙΚΟΣ CLOSER||
INTERNAL CLOSER|CLOSER INTERNO|PLUS ÉTROIT INTERNE|INTERNES GENAUERES|PIÙ VICINO INTERNO|MAIS PRÓXIMO INTERNO|ΕΣΩΤΕΡΙΚΟΣ CLOSER||
Dial Blind Transfer|Marcar Blind Transfer|Transfert D'Aveugle De Cadran|Vorwahlknopf-Vorhang-Übertragung|Trasferimento Dei Ciechi Della Manopola|Transferência Da Cortina Do Seletor|Τυφλή μεταφορά κλήσης||
Dial timed out, contact your system administrator|Tiempo de espera superado, pongase en contacto con su administrador de sistema|Le cadran chronométré dehors, contactent votre interface|Zeit Vorwahlknopf, der heraus festgesetzt wird, treten mit Ihrem|La manopola cronometrata fuori, si mette in contatto con il vostro|O seletor cronometrado para fora, contata seu administrador de|Τέλος χρόνος της κλήσης, να έρθετε σε επαφή με το διαχειριστή||
No more leads in the hopper for campaign|No más Leads en el hopper de la campaña|Pas plus ne mène dans le distributeur pour la campagne|Kein mehr führt im Zufuhrbehälter für Kampagne|Nient'altro conduce nella tramoggia per la campagna|Não mais conduz no funil para a campanha|Δεν υπάρχουν άλλοι καθοδηγητές στον hopper για την εκστρατεία||
Web Form|Formulario Web|Forme de Web|Netz-Form|Forma Di Fotoricettore|Formulário Da Correia fotorreceptora|Σελίδα Διαδικτύου||
You Must Select a Disposition|Usted debe seleccionar una disposición|Vous devez choisir une disposition|Sie müssen eine Einteilung vorwählen|Dovete selezionare una disposizione|Você deve selecionar uma disposição|Πρέπει να επιλέξετε ένα τερματισμό||
GROUPS NOT SELECTED|GRUPOS NO SELECCIONADOS|GROUPES NON CHOISIS|GRUPPEN NICHT VORGEWÄHLT|GRUPPI NON SELEZIONATI|GRUPOS NÃO SELECIONADOS|ΟΜΑΔΕΣ ΠΟΥ ΔΕΝ ΕΧΟΥΝ ΕΠΙΛΕΓΕΙ||
SELECTED GROUPS|GRUPOS SELECCIONADOS|GROUPES CHOISIS|VORGEWÄHLTE GRUPPEN|GRUPPI SELEZIONATI|GRUPOS SELECIONADOS|ΕΠΙΛΕΓΜΕΝΕΣ ΟΜΑΔΕΣ||
You cannot log out during a Dial attempt|Usted no puede salir durante un intento de marcado|Vous ne pouvez pas vous déconnecter pendant une tentative de|Sie können nicht heraus während eines Vorwahlknopfversuchs loggen|Non potete annotare fuori durante il tentativo della manopola|Você não pode registrar para fora durante uma tentativa do seletor|Δεν μπορείτε να αποσυνδεθείτε κατά τη διάρκεια μιας προσπάθειας κλήσεως||
Wait 50 seconds for the dial to fail out if it is not answered|Esperar 50 segundos para que el marcado falle si no es respondido|Attendez 50 secondes le cadran pour échouer dehors si on ne lui|Warten Sie, daß 50 Sekunden auf den Vorwahlknopf heraus ausfallen,|Aspetti 50 secondi la manopola per venire a mancare fuori se non è|Espere 50 segundos pelo seletor para falhar para fora se não se|Περιμένετε 50 δευτερόλεπτα την κλήση για να αποτύχει εάν δεν απαντέται||
STILL A LIVE CALL! Hang it up then you can log out|TODAVÍA UNA LLAMADA ACTIVA! Colgar y luego salir|Un APPEL TOUJOURS DE PHASE ! Accrochez-le vers le haut alors que vous|NOCH Ein PHASENANRUF! Hängen Sie ihn, oben dann, das Sie heraus|ANCORA Una CHIAMATA IN TENSIONE! Appendala in su allora che potete|AINDA Uma CHAMADA VIVA! Pendure-a acima então que você pode|Υπάρχει ΑΚΟΜΑ μια ΚΛΗΣΗ ΕΝΕΡΓΗ! Τερματίστε την κλήση και μετά μπορείτε να αποσυνδεθείτε||
Hide conference call channel information|Ocultar la información del canal Conferencia|L'information de canal de conférence téléphonique de peau|Fellkonferenzanruf-Führung Informationen|Le informazioni della scanalatura di chiamata di congresso del|Informação da canaleta da chamada de conferência do hide|Απόκρυψη πηροφοριών κλήσης καναλιού διασκέψης||
Show conference call channel information|Mostrar la información del canal Conferencia|Montrez l'information de canal de conférence téléphonique|Zeigen Sie Konferenzanruf-Führung Informationen|Mostri le informazioni della scanalatura di chiamata di congresso|Mostre a informação da canaleta da chamada de conferência|Παρουσίαση πληροφοριών κλήσης καναλιού διασκέψης||
Logged in as User|Usuario|Utilisateur|Benutzer|Utente|Usuário|Σύνδεση ως χρήστης ||
Noone is in your session|Nadie está en su sesión|Aucun n'est en votre session|Noone ist in Ihrem Lernabschnitt|Nessuno è nella vostra sessione|Noone está em sua sessão|Κανένας δεν είναι στη σύνοδό σας||
Customer has hung up|El cliente ha colgado|Le client a raccroché|Kunde hat oben gehangen|Il cliente ha appeso in su|O cliente pendurou acima|Ο πελάτης έχει κλείσει το τηλέφωνο||
End-of-call Disposition Selection|selección de la disposición del End-of-call|Extrémité-de-appelez Le Choix De Disposition|Ende-von-benennen Sie Einteilung Vorwähler|Estremità-de-denomini La Selezione Di Disposizione|Extremidade-$$$-CHAME A Seleção Da Disposição|Επιλογή τερματισμού της κλήσης||
CLOSER INBOUND GROUP SELECTION|SELECCIÓN DEL GRUPO DE ENTRANTES CLOSER|UN CHOIX DE GROUPE D'ARRIVÉE PLUS ÉTROIT|GENAUERE INBOUND GRUPPENWAHL|SELEZIONE DI GRUPPO INBOUND PIÙ VICINA|SELEÇÃO DE GRUPO INBOUND MAIS PRÓXIMA|CLOSER ΕΙΣΕΡΧΟΜΕΝΗ ΕΠΙΛΟΓΗ ΟΜΑΔΑΣ||
Closer Inbound Group Selection|SELECCIÓN DEL GRUPO DE ENTRANTES CLOSER|Un Choix De Groupe D'arrivée Plus étroit|Genauere Inbound Gruppenwahl|Selezione Di Gruppo Inbound Più vicina|Seleção De Grupo Inbound Mais próxima|Επιλογή Closer εισερχόμενης ομάδας||
BLENDED CALLING|BLENDED CALLING|APPELER MÉLANGÉ|GEMISCHTES BENENNEN|CHIAMATA MESCOLATA|CHAMADA MISTURADA|ΣΥΝΔΥΑΣΜΕΝΗ ΚΛΗΣΗ||
outbound activated|Salientes activdas|en partance activé|outbound aktiviert|outbound attivato|outbound ativado|εξερχόμενες ενεργοποιημένες||
Preview the Lead then|Mostrar el Lead entonces|Visionnez le fil alors|Sehen Sie die Leitung dann vorher|Allora veda in anteprima il cavo|Inspecione a ligação então|Προβολή καθοδήγησης μετά||
Lead was not reverted, there was an error|El Lead no fue invertido, hubo un error|Le fil n'a pas été retourné, il n'y avait pas une erreur|Leitung wurde nicht umgeschaltet, es gab eine Störung|Il cavo non è stato ritornato, ci non era un errore|A ligação não reverted, não havia um erro|Η καθοδήγηση δεν επανήλθε, υπήρξε ένα λάθος||
call was not placed, there was an error|la llamada no fue atendida, hubo un error|l'appel n'a pas été placé, il n'y avait pas une erreur|Anruf wurde nicht gesetzt, es gab eine Störung|la chiamata non è stata disposta, ci non era un errore|a chamada não foi colocada, não havia um erro|η κλήση δεν τοποθετήθηκε, υπήρξε ένα λάθος||
Number to call|Número a llamar|Nombre à appeler|Zahl zum zu benennen|Numero da denominare|Número a chamar-se|Αριθμός για κλήση||
Customer Information|Información Del Cliente|L'Information De Client|Kunde Informationen|Le Informazioni Del Cliente|Informação Do Cliente|Πληροφορίες πελατών||
Lead Dispositioned As|Lead Dispositioned Como|Fil Dispositioned As|Leitung Dispositioned Wie|Cavo Dispositioned As|Ligação Dispositioned Como|Τερματισμό Καθοδήγησης όπως||
Any changes made to the customer information below at this time will not be comitted, You must change customer information before you Hangup the call|Cualquier cambio realizado al cliente que no será la información abajo en este tiempo comitted, usted debe cambiar la información del cliente antes de usted retraso la llamada|Tous les changements faits au client que l'information ci-dessous actuellement ne sera pas comitted, vous doivent changer l'information de client avant vous décrochement l'appel|Alle mögliche Änderungen, die am Kunden vorgenommen wurden, den, Informationen unten diesmal nicht sind, comitted, Sie müssen Kunde Informationen vor Ihnen ändern Hängezustand der Anruf|Tutti i cambiamenti fatti al cliente che le informazioni qui sotto attualmente non saranno comitted, voi devono cambiare le informazioni del cliente prima di voi hangup la chiamata|Todas as mudanças feitas ao cliente que a informação abaixo neste tempo não será comitted, você devem mudar a informação do cliente antes de você hangup a chamada|Οποιεσδήποτε αλλαγές που γίνονται στις πληροφορίες πελατών κατωτέρω αυτή τη στιγμή δεν θα είναι, πρέπει να αλλάξετε τις πληροφορίες πελατών ενώπιον σας Hangup η κλήση||
When active, simply press the keyboard key for the desired disposition for this call. The call will then be hungup and dispositioned automatically|Cuando esté activo, presione simplemente la tecla para la disposición deseada para esta llamada. La llamada después será colgada y dispositioned automáticamente|Si actif, appuyez sur simplement la touche de clavier pour la|Wenn aktiv, betätigen Sie einfach die Taste für die gewünschte|Una volta attivo, premi semplicemente la chiave di tastiera per la|Quando ativo, pressione simplesmente a chave de teclado para a|Όταν είναι ενεργό, πιέστε απλά το πλήκτρο κλειδί για τον επιθυμητό τερματισμό της κλήσης. Η κλήση θα τρεματίσει αυτόματα||
Disposition Hot Keys|Teclas de acceso rápido a la Disposición|Touches Directes De Disposition|Einteilung Heiße Schlüssel|Chiavi Calde Di Disposizione|Chaves Quentes Da Disposição|Πλήκτρα κλειδιά Τερματισμού||
Cust Time|Tiempo|Temps De Cust|Cust Zeit|Tempo Di Cust|Tempo De Cust|Χρόνος Πελάτη||
RECORD ID|GRABACIÓN ID|IDENTIFICATION RECORD|SATZ IDENTIFIKATION|IDENTIFICAZIONE RECORD|ID RECORD|ΤΑΥΤΟΤΗΤΑ ΕΓΓΡΑΦΗΣ||
RECORDING FILE|GRABANDO ARCHIVO|DOSSIER D'ENREGISTREMENT|REGISTERAKTE|LIMA DI REGISTRAZIONE|LIMA DE GRAVAÇÃO|ΑΡΧΕΙΟ ΚΑΤΑΓΡΑΦΗΣ||
HOT KEYS ACTIVE|TECLAS ACCESO RÁPIDO ACTIVAS|TOUCHES DIRECTES ACTIVES|HEISSE SCHLÜSSEL AKTIV|CHIAVI CALDE ATTIVE|CHAVES QUENTES ATIVAS|ΠΛΗΚΤΡΑ ΚΛΕΙΔΙΑ ΕΝΕΡΓΑ||
HOT KEYS INACTIVE|TECLAS ACCESO RÁPIDO INACTIVAS|TOUCHES DIRECTES INACTIVES|HEISSE SCHLÜSSEL UNAKTIVIERT|CHIAVI CALDE INATTIVE|CHAVES QUENTES INATIVAS|ΠΛΗΚΤΡΑ ΚΛΕΙΔΙΑ ΑΝΕΝΕΡΓΑ||
DIAL OVERRIDE|INVALIDACIÓN DEL MARCADO|DÉPASSEMENT DE CADRAN|VORWAHLKNOPF-ÜBERSTEUERUNG|SOVRAPPOSIZIONE DI UN COMANDO MANUALE DELLA MANOPOLA|ULTRAPASSAGEM DO SELETOR|Υπέρβαση Κλήσης||
SKIP LEAD|SALTAR LEAD|FIL DE SAUT|ZEILENSPRUNG-LEITUNG|CAVO DI SALTO|LIGAÇÃO DA FAIXA CLARA|Παράλειψη Καθοδήγησης||
DIAL LEAD|MARCAR LEAD|FIL DE CADRAN|VORWAHLKNOPF-LEITUNG|CAVO DELLA MANOPOLA|LIGAÇÃO DO SELETOR|ΚΛΗΣΗ ΚΑΘΟΔΗΓΗΣΗΣ||
LEAD PREVIEW|MOSTRAR LEAD|PRÉVISION DE FIL|LEITUNG VORBETRACHTUNG|PREVISIONE DEL CAVO|INSPECÇÃO PRÉVIA DA LIGAÇÃO|ΠΡΟΒΟΛΗ ΚΑΘΟΔΗΓΗΣΗΣ||
PAUSE AGENT DIALING|PARAR LA LLAMADA|CESSEZ D'APPELER|STOPPEN SIE ZU BENENNEN|SMETTA DI DENOMINARE|PARE DE CHAMAR-SE|ΤΕΡΜΑΤΙΣΜΟΣ ΚΛΗΣΗΣ||
DISPOSITION CALL|DISPOSITION CALL|APPEL DE DISPOSITION|EINTEILUNG ANRUF|CHIAMATA DI DISPOSIZIONE|CHAMADA DA DISPOSIÇÃO|Τερματισμός Κλήσης||
session ID| sesión ID| ID de session| Lernabschnitt ID| ID di sessione| sessão ID| Ταυτότητα εργασίας||
to campaign| a la campaña| à la campagne| zur Kampagne| alla campagna| à campanha| στην εκστρατεία||
Select a CallBack Date|Seleccione una fecha del servicio repetido|Choisissez une date de rappel de service|Wählen Sie ein Wiederholungsbesuch Datum vor|Selezioni una data di chiamata ripetuta|Selecione uma data da rechamada|Επιλέξτε μια ημερομηνία CallBack||
maximize|maximice|maximisez|maximieren Sie|elevi|maximize|μεγιστοποιήστε||
minimize|reduzca al mínimo|réduisez au minimum|setzen Sie herab|minimizzi|minimize|ελαχιστοποιήστε||
You must choose a date|Usted debe elegir una fecha|Vous devez choisir une date|Sie müssen ein Datum wählen|Dovete scegliere una data|Você deve escolher uma data|Πρέπει να επιλέξετε μια ημερομηνία||
Select a Date Below|Seleccione una fecha abajo|Choisissez une date ci-dessous|Wählen Sie ein Datum unten vor|Selezioni una data qui sotto|Selecione uma data abaixo|Επιλέξτε μια ημερομηνία κατωτέρω||
Click on a callback below to call the customer back now. If you click on a record below to call it, it will be removed from the list|Chasque encendido un servicio repetido abajo ahora para llamar la parte posteriora del cliente. Si usted chasca encendido un expediente abajo para llamarlo, será quitado de la lista|Cliquez sur un rappel de service ci-dessous pour appeler le dos de client maintenant. Si vous cliquez sur un disque ci-dessous pour l'appeler, il sera enlevé de la liste|Klicken Sie an einen Wiederholungsbesuch unten, um die Kunde Rückseite jetzt zu benennen. Wenn Sie an eine Aufzeichnung unten klicken, um sie zu benennen, wird sie von der Liste entfernt|Scatti sopra una chiamata ripetuta qui sotto ora per denominare la parte posteriore del cliente. Se scattate sopra un'annotazione qui sotto per denominarli, sarà rimossa dalla lista|Estale sobre uma rechamada abaixo para chamar agora a parte traseira do cliente. Se você estalar sobre um registro abaixo para o chamar, estará removido da lista|Χτυπήστε σε μια επανάκληση για να καλέσετε κατωτέρω την πλάτη πελατών τώρα. Εάν χτυπήσετε σε ένα αρχείο για να τον καλέσετε κατωτέρω, θα αφαιρεθεί από τον κατάλογο||
If you want to dial a number and have it NOT be added as a new lead, enter in the exact dialstring that you want to call in the Dial Override field below. To hangup this call you will have to open the CALLS IN THIS SESSION link at the bottom of the screen and hang it up by clicking on its channel link there|Si usted desea marcar un número y hacerlo no agregar como nuevo plomo, entre en dialstring exacto ese usted desean llamar en el campo de la invalidación del dial abajo. Al retraso esta llamada usted tendrá que abrir las LLAMADAS EN ESTE acoplamiento de la SESIÓN en el fondo de la pantalla y colgarlas para arriba chascando en su acoplamiento del canal allí|Si vous voulez composer un numéro et le faire ne pas ajouter comme nouvelle avance, entrez dans dialstring exact ce vous veulent appeler dans le domaine de priorité de cadran ci-dessous. Au décrochement cet appel vous devrez ouvrir les APPELS DANS CE lien de SESSION au fond de l'écran et les accrocher vers le haut en cliquant sur son lien de canal là|Wenn Sie eine Nummer wählen und sie NICHT als neue Leitung hinzufügen lassen möchten, kommen Sie im genauen Dialstring diesem Sie möchten in der Vorwahlknopf-Übersteuerung benennen auffangen unten herein. Zum Hängezustand dieser Anruf müssen Sie die ANRUFE IN DIESER LERNABSCHNITT-Verbindung am unteren Bildschirmrand öffnen und ihn oben hängen, indem Sie dort auf seiner Führung Verbindung klicken|Se desiderate comporre un numero e farli non aggiungere come nuovo cavo, entri nel dialstring esatto quel voi desiderano denominare nel giacimento della sovrapposizione di un comando manuale della manopola qui sotto. Al hangup questa chiamata dovrete aprire le CHIAMATE in QUESTO collegamento di SESSIONE alla parte inferiore dello schermo ed appenderli in su scattandosi sul relativo collegamento della scanalatura là|Se você quiser marcar um número e o ter não adicionado como uma ligação nova, entre no dialstring exato esse você querem chamar-se abaixo no campo da ultrapassagem do seletor. Ao hangup esta chamada você terá que abrir as CHAMADAS ncEsta ligação da SESSÃO no fundo da tela e pendurá-las acima estalando em sua ligação da canaleta lá|Εάν θέλετε να σχηματίσετε έναν αριθμό και να τον έχετε να μην προστεθεί ως νέος μόλυβδος, εισάγετε ακριβές που θέλετε να καλέσετε μέσα τομέα συμπληρωματικής προμήθειας πινάκων κατωτέρω. Στο hangup αυτή η κλήση εσείς θα πρέπει να ανοίξει τις ΚΛΗΣΕΙΣ σε ΑΥΤΗΝ ΤΗΝ σύνδεση ΣΥΝΟΔΟΥ στο κατώτατο σημείο της οθόνης και να τον κλείσει το τηλέφωνο με να χτυπήσει στη σύνδεση καναλιών της εκεί||
YOU CANNOT SKIP A CALLBACK OR MANUAL DIAL, YOU MUST DIAL THE LEAD|USTED NO PUEDE SALTAR Un SERVICIO REPETIDO O DIAL MANUAL, USTED DEBE MARCAR EL PLOMO|VOUS NE POUVEZ PAS SAUTER Un RAPPEL DE SERVICE OU CADRAN MANUEL, VOUS DEVEZ COMPOSER LE FIL|SIE KÖNNEN Nicht Einen WIEDERHOLUNGSBESUCH ÜBERSPRINGEN, ODER MANUELLER VORWAHLKNOPF, MÜSSEN SIE DIE LEITUNG WÄHLEN|NON POTETE SALTARE Una CHIAMATA RIPETUTA O MANOPOLA MANUALE, DOVETE COMPORRE IL CAVO|VOCÊ NÃO PODE SALTAR Uma RECHAMADA OU SELETOR MANUAL, VOCÊ DEVE MARCAR A LIGAÇÃO|ΔΕΝ ΜΠΟΡΕΙΤΕ ΝΑ ΠΗΔΗΣΕΤΕ μια ΕΠΑΝΑΚΛΗΣΗ Η ο ΧΕΙΡΩΝΑΚΤΙΚΟΣ ΠΙΝΑΚΑΣ, ΕΣΕΙΣ ΠΡΕΠΕΙ ΝΑ ΣΧΗΜΑΤΙΣΕΙ το ΜΟΛΥΒΔΟ||
YOU MUST BE PAUSED TO MANUAL DIAL A NEW LEAD IN AUTO-DIAL MODE|USTED DEBE SER DETENIDO BREVEMENTE Al DIAL MANUAL Un NUEVO PLOMO EN MODO De AUTO-DIAL|VOUS DEVEZ ÊTRE FAIT UNE PAUSE Au CADRAN MANUEL Une NOUVELLE AVANCE EN MODE D'AUTO-DIAL|SIE MÜSSEN Zum MANUELLEN VORWAHLKNOPF PAUSIERT WERDEN Eine NEUE LEITUNG Im AUTO-DIAL MODUS|DOVETE ESSERE FATTI UNA PAUSA Alla MANOPOLA MANUALE Un NUOVO CAVO Nel MODO Di AUTO-DIAL|VOCÊ DEVE SER PAUSADO Ao SELETOR MANUAL Uma LIGAÇÃO NOVA Na MODALIDADE De AUTO-DIAL|ΠΡΕΠΕΙ ΝΑ ΣΤΑΜΑΤΗΘΕΙΤΕ στο ΧΕΙΡΩΝΑΚΤΙΚΟ ΠΙΝΑΚΑ ένας ΝΕΟΣ ΜΟΛΥΒΔΟΣ στον ΤΡΟΠΟ αυτόματος-ΠΙΝΑΚΩΝ||
Enter information below for the new lead you wish to call|Incorpore la información abajo para el nuevo plomo que usted desea llamar|Écrivez l'information ci-dessous pour le nouveau fil que vous souhaitez appeler|Tragen Sie Informationen unten für die neue Leitung ein, die Sie benennen möchten|Fornisca le informazioni qui sotto per il nuovo cavo che desiderate denominare|Incorpore a informação abaixo para a ligação que nova você deseja se chamar|Εισάγετε τις πληροφορίες κατωτέρω για το νέο μόλυβδο που επιθυμείτε να καλέσετε||
YOU MUST BE PAUSED TO CHECK CALLBACKS IN AUTO-DIAL MODE|USTED DEBE SER DETENIDO BREVEMENTE PARA COMPROBAR SERVICIOS REPETIDOS EN MODO DE AUTO-DIAL|VOUS DEVEZ ÊTRE FAIT UNE PAUSE POUR VÉRIFIER DES RAPPELS DE SERVICE EN MODE D'AUTO-DIAL|SIE MÜSSEN PAUSIERT WERDEN, UM WIEDERHOLUNGSBESUCHE IM AUTO-DIAL MODUS ZU ÜBERPRÜFEN|DOVETE ESSERE FATTI UNA PAUSA PER CONTROLLARE LE CHIAMATE RIPETUTE NEL MODO DI AUTO-DIAL|VOCÊ DEVE SER PAUSADO PARA VERIFICAR RECHAMADAS NA MODALIDADE DE AUTO-DIAL|ΠΡΕΠΕΙ ΝΑ ΣΤΑΜΑΤΗΘΕΙΤΕ ΓΙΑ ΝΑ ΕΛΕΓΧΕΤΕ ΤΙΣ ΕΠΑΝΑΚΛΗΣΕΙΣ ΣΤΟΝ ΤΡΟΠΟ ΑΥΤΌΜΑΤΟΣ-ΠΙΝΑΚΩΝ||
Note: all new manual dial leads will go into list 999|Nota: todos los nuevos plomos manuales del dial entrarán la lista 999|Note : tous les nouveaux fils manuels de cadran entreront dans la liste 999|Anmerkung: alle neuen manuellen Vorwahlknopfleitungen steigen in Liste 999 ein|Nota: tutti i nuovi cavi manuali della manopola entreranno nella lista 999|Nota: todas as ligações manuais novas do seletor entrarão na lista 999|Σημείωση: όλοι οι νέοι χειρωνακτικοί μόλυβδοι πινάκων θα πάνε στον κατάλογο 999||
YOU DO NOT HAVE PERMISSIONS TO TRANSFER CALLS|USTED NO TIENE PERMISOS DE TRANSFERIR LLAMADAS|VOUS N'AVEZ PAS DES PERMISSIONS DE TRANSFÉRER DES APPELS|SIE HABEN NICHT ERLAUBNIS, ANRUFE ZU BRINGEN|NON AVETE PERMESSI TRASFERIRE LE CHIAMATE|VOCÊ NÃO TEM PERMISSÕES TRANSFERIR CHAMADAS|ΔΕΝ ΕΧΕΤΕ ΤΙΣ ΑΔΕΙΕΣ ΝΑ ΜΕΤΑΦΕΡΕΤΕ ΤΙΣ ΚΛΗΣΕΙΣ||
will be added to the beginning of this number|será agregado al principio de este número|sera ajouté au commencement de ce nombre|wird dem Anfang dieser Zahl hinzugefügt|sarà aggiunto all'inizio di questo numero|será adicionado ao começo deste número|θα προστεθεί στην αρχή αυτού του αριθμού||
This is usually a 1 in the USA-Canada|Éste es generalmente un 1 en los U.S.A. y el Canadá|C'est habituellement un 1 aux Etats-Unis et au Canada|Dieses ist normalerweise 1 in den USA und im Kanada|Ciò è solitamente un 1 negli S.U.A. e nel Canada|Este é geralmente um 1 nos EUA e no Canadá|Αυτό είναι συνήθως ένα 1 στις ΗΠΑ και τον Καναδά||
NEW MANUAL DIAL LEAD FOR|NUEVO PLOMO MANUAL DEL DIAL PARA|NOUVEAU FIL MANUEL DE CADRAN POUR|NEUE MANUELLE VORWAHLKNOPF-LEITUNG FÜR|NUOVO CAVO MANUALE DELLA MANOPOLA PER|LIGAÇÃO MANUAL NOVA DO SELETOR PARA|ΝΕΟΣ ΧΕΙΡΩΝΑΚΤΙΚΟΣ ΜΟΛΥΒΔΟΣ ΠΙΝΑΚΩΝ ΓΙΑ||
Finish and Disposition Call|Final y llamada de la disposición|Finition et appel de disposition|Ende und Einteilung Anruf|Rivestimento e chiamata di disposizione|Revestimento e chamada da disposição|Τελειώστε και κλήση διάθεσης||
10 digits max - digits only|máximo de 10 dígitos - dígitos solamente|maximum de 10 chiffres - chiffres seulement|10 Stellen Maximum - nur Stellen|un massimo delle 10 cifre - cifre soltanto|máximo de 10 dígitos - dígitos somente|μέγιστο 10 ψηφίων - ψηφία μόνο||
Note: a dial prefix of|Nota: un prefijo del dial de|Note : un préfixe de cadran de|Anmerkung: ein Vorwahlknopfpräfix von|Nota: un prefisso della manopola di|Nota: um prefixo do seletor de|Σημείωση: ένα πρόθεμα πινάκων||
Hangup Again|Retraso Otra vez|Décrochement Encore|Hängezustand Wieder|Hangup Ancora|Hangup Outra vez|Κλείστε το τηλέφωνο πάλι||
Go Back|Vaya Detrás|Retournez|Gehen Sie Zurück|Vada Indietro|Vá Para trás|Επιστρέψτε||
Call Agent Again|Agente De la Llamada Otra vez|Agent D'Appel Encore|Anruf-Mittel Wieder|Agente Di Chiamata Ancora|Agente Da Chamada Outra vez|Πράκτορας κλήσης πάλι||
MY CALLBACK ONLY|MI SERVICIO REPETIDO SOLAMENTE|MON RAPPEL DE SERVICE SEULEMENT|NUR MEIN WIEDERHOLUNGSBESUCH|LA MIA CHIAMATA RIPETUTA SOLTANTO|MINHA RECHAMADA SOMENTE|Η ΕΠΑΝΑΚΛΗΣΗ ΜΟΥ ΜΟΝΟ||
NO ACTIVE CALLBACKS|NO SERVICIOS REPETIDOS ACTIVOS|NON RAPPELS DE SERVICE ACTIFS|NINE AKTIVE WIEDERHOLUNGSBESUCHE|NO CHIAMATE RIPETUTE ATTIVE|NO RECHAMADAS ATIVAS|Αριθ ΕΝΕΡΓΕΣ ΕΠΑΝΑΚΛΗΣΕΙΣ||
ACTIVE CALLBACKS|SERVICIOS REPETIDOS ACTIVOS|RAPPELS DE SERVICE ACTIFS|AKTIVE WIEDERHOLUNGSBESUCHE|CHIAMATE RIPETUTE ATTIVE|RECHAMADAS ATIVAS|ΕΝΕΡΓΕΣ ΕΠΑΝΑΚΛΗΣΕΙΣ||
CALLBACKS FOR AGENT|SERVICIOS REPETIDOS PARA EL AGENTE|RAPPELS DE SERVICE POUR L'AGENT|WIEDERHOLUNGSBESUCHE FÜR MITTEL|CHIAMATE RIPETUTE PER L'AGENTE|RECHAMADAS PARA O AGENTE|ΕΠΑΝΑΚΛΗΣΕΙΣ ΓΙΑ ΤΟΝ ΠΡΑΚΤΟΡΑ||
Dial Code:|Dial Código:|Cadran Code:|Vorwahlknopf-Code:|Codice Della Manopola:|Código Do Seletor:|Κώδικας πινάκων:||
Dial Override|Invalidación Del Dial|Dépassement De Cadran|Vorwahlknopf-Übersteuerung|Sovrapposizione di un comando manuale Della Manopola|Ultrapassagem Do Seletor|Συμπληρωματική προμήθεια πινάκων||
digits only please|los dígitos satisfacen solamente|les chiffres satisfont seulement|Stellen gefallen nur|le cifre soddisfano soltanto|os dígitos satisfazem somente|ψηφία μόνο παρακαλώ||
Dial Now|Dial Ahora|Cadran Maintenant|Vorwahlknopf Jetzt|Manopola Ora|Seletor Agora|Πίνακας τώρα||
CB Comments|Comentarios de los CBES|Commentaires de CB|COLUMBIUM Anmerkungen|Osservazioni dei CB|Comentários dos CB|Σχόλια CB||
Title|Título|Titre|Titel|Titolo|Título|Τίτλος||
Your Status|Su Estado|Votre Statut|Ihr Status|La Vostra Condizione|Seu Status|Η θέση σας||
STATUS|ESTADO|STATUT|STATUS|CONDIZIONE|STATUS|ΚΑΤΑΣΤΑΣΗ||
RESET|REINICIAR|REMISE|ZURÜCKSTELLEN|RISISTEMAZIONE|RESTAURAÇÃO|ΕΠΑΝΑΦΟΡΑ||
CLEAR FORM|REINICIAR|REMISE|ZURÜCKSTELLEN|RISISTEMAZIONE|RESTAURAÇÃO|ΕΠΑΝΑΦΟΡΑ||
SUBMIT|ENVIAR|SOUMETTEZ|SUBMITSie|PRESENTI|SUBMETA|ΥΠΟΒΑΛΕΤΕ||
Incoming|Entrante|Entrant|Ankommend|Ricevuto|Entrante|Εισερχόμενο||
Calling|Llamando|Appeler|Benennen|Chiamata|Chamada|Κλήση||
Called|Llamado|Appelé|Benannt|Denominato|Chamado|Αποκαλούμενος||
Campaign|Campaña|Campagne|Kampagne|Campagna|Campanha|Εκστρατεία||
Status|Estado|Statut|Status|Condizione|Status|Κατάσταση||
Inserted|Insertado|Inséré|Eingesetzt|Inserito|Introduzido|Εισαγωγή ||
seconds|segundos|secondes|Sekunden|secondi|segundos|δευτερόλεπτα||
HELP|AYUDA|AIDE|HILFE|AIUTO|AJUDA|ΒΟΗΘΕΙΑ||
Login|Conexión|Ouverture|LOGON|Inizio attività|Início de uma sessão|Σύνδεση||
User|Usuario|Utilisateur|Benutzer|Utente|Usuário|Χρήστης||
Password|Contraseña|Mot de passe|Kennwort|Parola d'accesso|Senha|Κωδικός πρόσβασης||
VERSION|VERSIÓN|VERSION|VERSION|VERSIONE|VERSÃO|ΕΚΔΟΣΗ||
BUILD|CONSTRUCCION|CONSTRUCTION|BAU|CONFIGURAZIONE|CONFIGURAÇÃO|ΔΗΜΙΟΥΡΓΙΑ||
Server|Servidor|Serveur|Bediener|Assistente|Usuário|Κεντρικός υπολογιστής||
RECORD|GRABACIÓN|DISQUE|SATZ|ANNOTAZIONE|REGISTRO|ΕΓΓΡΑΦΗ||
HANGUP|COLGAR|DÉCROCHEMENT|HÄNGEZUSTAND|HANGUP|HANGUP|ΚΛΕΙΣΙΜΟ||
XFER|TRANSFERENCIA|XFER|XFER|XFER|XFER|XFER||
PARK|PARKING|PARC|PARK|PARCO|PARQUE|ΣΤΑΘΜΕΥΣΗ||
IN-NUMBER|NÚMERO-ENTRANTE|IN-NUMBER|IN-NUMBER|IN-NUMBER|IN-NUMBER|ΣΕ-ΑΡΙΘΜΟ||
NUMBER|NÚMERO|NOMBRE|ZAHL|NUMERO|NÚMERO|ΑΡΙΘΜΟΣ||
MAXLENGTH|maxlength|MAXLENGTH|MAXLENGTH|MAXLENGTH|MAXLENGTH|MAXLENGTH||
LENGTH|LONGITUD|LONGUEUR|LÄNGE|LUNGHEZZA|COMPRIMENTO|ΜΗΚΟΣ||
CALLERID|LLAMADORID|CALLERID|CALLERID|CALLERID|CALLERID|CALLERID||
CallerID|LlamadorID|CallerID|CallerID|CallerID|CallerID|CallerID||
CALL|LLAMADA|APPEL|ANRUF|CHIAMATA|CHAMADA|ΚΛΗΣΗ||
PICKUP|CAPTURAR|COLLECTE|AUFNAHME|RACCOLTA|COLETOR|ΕΠΑΝΑΛΕΙΨΗ||
CONFERENCE|CONFERENCIA|CONFÉRENCE|KONFERENZ|CONGRESSO|CONFERÊNCIA|ΔΙΑΣΚΕΨΗ||
Refresh|Recarga|Régénérez|ErneuernSie|Rinfreschi|Refresque|Ανανέωση||
Send DTMF|Enviar DTMF|Envoyez DTMF|Senden Sie DTMF|Trasmetta DTMF|Emita DTMF|Στείλε DTMF||
ORDER|ORDEN|ORDRE|AUFTRAG|ORDINE|ORDEM|ΔΙΑΤΑΓΗ||
on | en | sur | auf | su | em | Στην ||
LOGOUT|SALIR|DÉCONNEXION|LOGOUT|TERMINE|LOGOUT|ΑΠΟΣΥΝΔΕΣΗ||
Channel|Canal|LaManche|Führung|Manica|Canaleta|Κανάλι||
Extensions|Extensiones|Prolongements|Verlängerungen|Estensioni|Extensões|Τηλ.συνδέσεις||
Conferences|Conferencias|Conférences|Konferenzen|Congressi|Conferências|Διασκέψεις||
Conference|Conferencia|Conférence|Konferenz|Congresso|Conferência|Διάσκεψη||
Recording|GRABANDO|Enregistrement|Aufnahme|Registrazione|Gravação|Καταγραφή||
Record|Grabar|Disque|Aufzeichnung|Annotazione|Registro|Εγγραφή||
Welcome|Bienvenido|Bienvenue|Willkommen|Benvenuto|Boa vinda|Καλωσόρισμα||
VOICEMAIL|BUZÓN DE VOZ|VOICEMAIL|VOICEMAIL|VOICEMAIL|VOICEMAIL|ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ||
NEW|NUEVO|NOUVEAU|NEU|NUOVO|NOVO|ΝΕΟ||
OLD|VIEJO|VIEUX|ALT|VECCHIO|VELHO|ΠΑΛΑΙΟ||
PAUSE|PAUSA|PAUSE|PAUSE|PAUSA|PAUSA|ΠΑΥΣΗ||
START|COMIENZO|DÉBUT|ANFANG|INIZIO|COMEÇO|ΕΝΑΡΞΗ||
Pause|Pausa|Pause|Pause|Pausa|Pausa|Παύση||
Resume|Comienzo|Résumé|Zusammenfassung|Resume|Resumo|Επανάληψη||
Faster|Más rápido|Plus rapidement|Schneller|Più velocemente|Mais rapidamente|Γρηγορότερα||
Slower|Más lento|Plus lent|Langsamer|Più lento|Mais lento|Πιό αργά||
Initializing|Inizializando|Initialisation|Initialisierung|Inizializzazione|Inicializar|Αρχή||
Invalid|Inválido|Inadmissible|Unzulässig|Non valido|Inválido|Ακυρο||
Username|Nombre del usuario|Username|Username|Username|Username|Όνομα χρήστη||
CUSTOM|A MEDIDA|COUTUME|GEWOHNHEIT|ABITUDINE|COSTUME|ΣΥΝΗΘΕΙΑ||
Notes|Notas|Notes|Anmerkungen|Note|Notas|Σημειώσεις||
First|Primero|D'abord|Zuerst|In primo luogo|Primeiramente|Πρώτο||
MI: |IM: |MI :|MI:|Mi:|Mi:|MI:||
Last|Último|Bout|Letztes|Ultimo|Último|Διάρκεια||
Address|Dirección|Adresse|Adresse|Indirizzo|Endereço|Διεύθυνση||
City|Ciudad|Ville|Stadt|Città|Cidade|Πόλη||
State|Estado|État|Zustand|Dichiari|Estado|Κράτος||
PostCode|Código Postal|Code postal|PostCode|PostCode|PostCode|Ταχ.Κωδ.||
Province|Provincia|Province|Provinz|Provincia|Província|Επαρχία||
Vendor ID|Vendedor ID|Identification De Fournisseur|Verkäufer Identifikation|Identificazione Del Fornitore|Vendedor Id|Ταυτότητα προμηθευτού||
DialCode|Código Del Dial|DialCode|DialCode|DialCode|DialCode|Κωδικός Κλήσης||
Alt. Phone|Teléfono Alt|Alt. Téléphone|Wech Telefon|Alt. Telefono|Alt. Telefone|Εναλ/κό Τηλέφωνο||
Show|Demostración|Exposition|Erscheinen|Esposizione|Mostra|Παρουσίαση||
Email|Email|Email|Email|Email|Email|Ηλεκτρονικό ταχυδρομείο||
Comments|Comentarios|Commentaires|Anmerkungen|Osservazioni|Comentários|Σχόλια||
REFRESH|ACTUALIZAR|RÉGÉNÉREZ|ERNEUERNSie|RINFRESCHI|REFRESQUE|ΑΝΑΝΕΩΣΗ||
ALT PHONE DIAL|TELÉFONO DEL ALT|TÉLÉPHONE D'ALT|WECH TELEFON|ALT DEL TELEFONO|ALT DO TELEFONE|ΚΛΗΣΗ ENAΛ/ΚΟΥ ΤΗΛΕΦΩΝΟΥ||
MAIN PHONE|TELÉFONO PRINCIPAL|TÉLÉPHONE PRINCIPAL|MAIN TELEFON|TELEFONO PRINCIPALE|TELEFONE PRINCIPAL|ΚΥΡΙΟ ΤΗΛΕΦΩΝΟ||
ALT PHONE|TELÉFONO ALT|TELÉFONO DEL ALT|TÉLÉPHONE D'ALT|WECH TELEFON|ALT DEL TELEFONO|ΕΝΑΛΛΑΚΤΙΚΟ ΤΗΛΕΦΩΝΟ||
ADDRESS3|DIRECCIÓN3|ADRESSE3|ADRESSE3|INDIRIZZO3|ENDEREÇO3|3ΔΙΕΥΘΥΝΣΗ||
FINISH LEAD|ACABAR LEAD|FINITION|ENDE|RIVESTIMENTO|REVESTIMENTO|ΤΕΛΕΙΩΣΤΕ||
Dial Alt Phone Number|Marcar Número de teléfono Alt|Nombre Alt De Cadran|Vorwahlknopf-Wech Zahl|Numero Alt Della Manopola|Número Alt Do Seletor|Κλήση εναλλακτικού αριθμού τηλεφώνου||
Phone|Teléfono|Téléphone|Telefon|Telefono|Telefone|Τηλέφωνο||
DIAL|DIAL|CADRAN|VORWAHLKNOPF|MANOPOLA|SELETOR|ΚΛΗΣΗ||
SUBMIT FAVORITES CHANGES - requires logout|SOMETA LOS CAMBIOS de los FAVORITOS - requiere registro de estado de la máquina|SOUMETTEZ LES CHANGEMENTS de FAVORIS - exige la déconnexion|SUBMIT Sie LIEBLINGE ÄNDERUNGEN - erfordert Logout|PRESENTI I CAMBIAMENTI dei FAVORITI - richiede il termine attività|SUBMETA MUDANÇAS dos FAVORITOS - requer o logout|ΥΠΟΒΑΛΤΕ τις ΑΛΛΑΓΕΣ ΣΥΜΠΑΘΕΙΩΝ - απαιτεί την αποσύνδεση||
BACK TO MAIN WINDOW - ignore changes made|DE NUEVO A VENTANA PRINCIPAL - no haga caso de los cambios realizados|DE NOUVEAU À LA FENÊTRE PRINCIPALE - ignorez les changements faits|ZURÜCK ZU MAIN FENSTER - ignorieren Sie die vorgenommenen Änderungen|DI NUOVO ALLA FINESTRA PRINCIPALE - ignori i cambiamenti fatti|PARA TRÁS À JANELA PRINCIPAL - ignore as mudanças feitas|ΠΙΣΩ στο ΚΥΡΙΟ ΠΑΡΑΘΥΡΟ - αγνοήστε τις αλλαγές που γίνονται||
AVAILABLE EXTENSIONS|EXTENSIONES DISPONIBLES|PROLONGEMENTS DISPONIBLES|VORHANDENE VERLÄNGERUNGEN|ESTENSIONI DISPONIBILI|EXTENSÕES DISPONÍVEIS|ΔΙΑΘΕΣΙΜΕΣ ΕΠΕΚΤΑΣΕΙΣ||
edit| corrija| éditez| redigieren sie| pubblichi| edite| εκδώστε||
FAVORITES| FAVORITOS| FAVORIS| LIEBLINGE| FAVORITI| FAVORITOS| ΣΥΜΠΑΘΕΙΕΣ||
@@ -0,0 +1,936 @@
# language_admin.txt - this file is for the internationalization of the astGUIclient
# admin web pages. The associated install.pl file will take the language as an
# argument and alter the php scripts to the language typed in the command line:
# example: ./install.pl --language=es
# current languages in the file:
# - English - (en) no alterations
# - Spanish - (es) first column
# - Greek - (el) second column
***LANGUAGES***
en-English|es-Español|el-Ελληνικά|
***FILES***
astguiclient|admin.php|0
astguiclient|remote_inbound.php|0
astguiclient|phone_stats.php|0
astguiclient|inbound_popup.php|0
astguiclient|AST_inboundEXTstats.php|0
astguiclient|dbconnect.php|1
vicidial|admin.php|0
vicidial|dbconnect.php|1
vicidial|AST_VICIDIAL_hopperlist.php|0
vicidial|AST_agent_time_sheet.php|0
vicidial|user_status.php|0
vicidial|server_stats.php|0
vicidial|AST_VDADstats.php|0
vicidial|AST_timeonVDAD.php|0
vicidial|AST_timeonVDAD_closer.php|0
vicidial|AST_timeonVDADall.php|0
vicidial|AST_timeoncall.php|0
vicidial|AST_timeonpark.php|0
vicidial|listloader.php|0
vicidial|listloaderMAIN.php|0
vicidial|new_listloader_superL.php|0
vicidial|count.htm|1
vicidial|help.gif|1
astguiclient|help.gif|1
vicidial|user_stats.php|0
vicidial|remote_dispo.php|0
vicidial|group_hourly_stats.php|0
vicidial|admin_search_lead.php|0
vicidial|admin_modify_lead.php|0
vicidial|AST_CLOSERstats.php|0
vicidial|vdremote.php|0
vicidial|AST_agent_performance_detail.php|0
vicidial|AST_agent_performance.php|0
vicidial|AST_server_performance.php|0
vicidial|AST_admin_log_display.php|0
vicidial|AST_timeonVDADall_SIPmonitor.php|0
***TRANSLATIONS***||||
### special translations that should stay at the top of the file ###
BORDER|Border|
VALUE=SUBMIT|VALUE=SUBMIT|
TYPE=SUBMIT|TYPE=Submit|
\.\/images\/|../agc/images/|
help.gif|help.gif|
### BEGIN translation phrases through 1.1.11 release ###
English|Ingles|Αγγλικά||
Spanish|Espanol|Ισπανικά||
French|Frances|Γαλλικά||
German|Aleman|Γερμανικά||
Italian|Italiano|Ιταλικά||
You have now logged out. Thank you|Usted ahora ha salido. Gracias|Έχετε αποσυνδεθεί. Σας ευχαριστούμε||
Invalid Username\/Password|Nombre y contraseña inválidos del usuario|Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης||
ASTERISK ADMIN: Administration|ASTERISK ADMIN: Administración|ΔΙΑΧ ASTERISK: Διαχείριση||
PHONES TABLE|TABLA DE LOS TELÉFONOS|ΠΙΝΑΚΑΣ ΤΗΛΕΦΩΝΩΝ||
Phone extension -<\/B> This field is where you put the phones name as it appears to Asterisk not including the protocol or slash at the beginning. For Example: for the SIP phone SIP\/test101 the Phone extension would be test101. Also, for IAX2 phones make sure you use the full phones name: IAX2\/IAXphone1@IAXphone1 would be IAXphone1@IAXphone1. For Zap phones make sure you put the full channel: Zap\/25-1 would be 25-1. Another note, make sure you set the Protocol below correctly for your type of phone.|Extensión del teléfono -</B> este campo es donde usted pone los nombres del teléfono que aparecen al marcar con asterisco no incluyendo el protocolo o la barra vertical del principio. Por ejemplo: para el teléfono SIP/test101 del SIP la extensión del teléfono sería test101. También, para los teléfonos IAX2 compruebe que usted utiliza el nombre del teléfono completo: IAX2/IAXphone1@IAXphone1 sería IAXphone1@IAXphone1. Para zap los teléfonos compruebe que usted pone el canal completo: Zap/25-1 sería 25-1. Otra nota, compruebe que usted fija el protocolo abajo correctamente para su tipo de teléfono.|Εσωτ.Σύνδεση Τηλεφώνου -</B> Αυτό το πεδίο είναι για την καταχώρηση του ονόματος του τηλεφώνου, όπως αυτό εμφανίζεται στο Asterisk, χωρίς να συμπεριλαμβάνει το πρωτόκολλο ή slash στην αρχή. Για παράδειγμα: για SIP τηλέφωνο SIPVtest101 η Εσωτ.Γραμμή Τηλεφώνου θα είναι test101. Επίσης, για IAX2 τηλέφωνα χρησιμοποιείστε τα πλήρης ονόματα: IAX2/IAXphone1@IAXphone1 θα είναι IAXphone1@IAXphone1. Για Zap τηλέφωνα καταχωρήστε το πλήρες κανάλι: Zap/25-1 θα είναι 25-1. Αλλη σημείωση, ορίστε το πρωτόκολλο παρακάτω σωστά για τον τύπο του τηλεφώνου.||
Dialplan number -<\/B> This field is for the number you dial to have the phone ring. This number is defined in the extensions.conf file of your Asterisk server|Número del Dialplan -</B> este campo está para el número que usted marca para tener el anillo del teléfono. Este número se define en el archivo de extensions.conf de su servidor asterisco|Αριθμός Σχεδίου Κλήσεων -</B> Αυτό το πεδίο είναι για τον αριθμό που καλείται για να κουδουνίζει το τηλέφωνο. Αυτός ο αριθμός ορίζεται στο αρχείο extensions.conf του διακομιστή Asterisk||
Voicemail Box -<\/B> This field is for the voicemail box that the messages go to for the user of this phone. We use this to check for voicemail messages and for the user to be able to use the VOICEMAIL button on astGUIclient app|Caja de Buzón de Voz -</B> este campo es para la caja del buzón de voz donde van los mensajes para al usuario de este teléfono. Utilizamos esto para comprobar los mensajes del buzón de voz y para que el usuario pueda acceder al Buzón de Voz desde astGUIclient|Περιεχόμενο Φωνητικού Ταχυδρομείου -</B> Αυτό το πεδίο είναι για το περιεχόμενο του φωνητικού ταχυδρομείου, όπου πηγαίνουν τα μηνύματα του τηλεφώνου του χρήστη. Το χρησιμοποιούμαι για να ελέγξουμε τα φωνητικά μηνύματα και για να μπορεί ο χρήστης να χρησιμοποιήσει το πλήκτρο VOICEMAIL||
Outbound CallerID -<\/B> This field is where you would enter the callerID number that you would like to appear on outbound calls placed form the astguiclient web-client. This does not work on RBS, non-PRI, T1\/E1s|CallerID de salida -</B> este campo es donde usted incorporara el número del callerID que usted quiera que aparezca en las llamadas de salida. Esto no funciona en las líneas RTB(non-PRI) T1/E1|CallerID Εξερχομένων -</B> Αυτό το πεδίο είναι για την καταχώρηση του αριθμού callerID που θα θέλατε να εμφανίζεται στις εξερχόμενες κλήσεις||
Phone IP address -<\/B> This field is for the phone's IP address if it is a VOIP phone. This is an optional field|Dirección IP del teléfono -</B> este campo es para la dirección IP del teléfono si es un teléfono de VOZIP. Este es un campo opcional|Δνση IP Τηλεφώνου -</B> Αυτό το πεδίο είναι για την δνση IP του τηλέφωνου εάν είναι ένα VOIP τηλέφωνο. Αυτό είναι ένα προαιρετικό πεδίο||
Computer IP address -<\/B> This field is for the user's computer IP address. This is an optional field|Dirección IP del ordenador -</B> este campo es para la dirección IP del ordenador del usuario. Es un campo opcional|Δνση IP Υπολογιστού -</B> Αυτό το πεδίο είναι για την δνση IP του υπολογιστή του χρήστη. Αυτό είναι ένα προαιρετικό πεδίο||
Server IP -<\/B> This menu is where you select which server the phone is active on|IP del servidor -</B> Este menú es donde usted selecciona en que servidor está el teléfono activo|IP Διακομιστή -</B> Αυτός ο κατάλογος επιλογών είναι που επιλέγετε σε ποιον διακομιστή το τηλέφωνο είναι ενεργό||
Login -<\/B> The login used for the phone user to get to admin functions|Login -</B> El nombre de usuario del teléfono para conseguir los permisos de admin|Σύνδεση -</B> Η σύνδεση χρησιμοποιείται για τον χρήστη τηλεφώνου για την πρόσβαση στις λειτουργίες διαχείρισης||
Password -<\/B> The password used for the phone user to get to admin functions|Contraseña -</B> la contraseña usada por el usuario del teléfono para conseguir los permisos de admin|Κωδκός -</B> Ο κωδικός χρησιμοποιείται για τον χρήστη τηλεφώνου για την πρόσβαση στις λειτουργίες διαχείρισης||
Status -<\/B> The status of the phone in the system, ACTIVE and ADMIN allow for GUI clients to work. ADMIN allows access to this administrative web site. All other statuses do not allow GUI or Admin web access|Estado -</B> el estado del teléfono en el sistema, puede ser ACTIVO y ADMIN permiten que los clientes del GUI trabajen. ADMIN permite el acceso a este Web site de administración. El resto de los estados no permiten el acceso al GUI o al Web de Admin|Κατάσταση -</B> Η κατάσταση του τηλεφώνου στο σύστημα, ΕΝΕΡΓΗ και ΔΙΑΧ επιτρέπουν στους GUI πελάτες να δουλέψουν. Η ΔΙΑΧ επιτρέπει την πρόσβαση στην ιστοσελίδα διαχείρισης||
Active Account -<\/B> Whether the phone is active to put it in the list in the GUI client|Cuenta activa -</B> si el teléfono está activado ponerla en la lista del cliente del GUI|Ενεργός Λογαριασμός -</B> Κατά πόσο το τηλέφωνο είναι ενεργό για να τοποθετηθεί στην λίστα στο GUI||
Phone Type -<\/B> Purely for administrative notes|Tipo de teléfono -</B> solamente para información administrativas|Τύπος Τηλεφώνου -</B> Απλά για σημειώσεις διαχείρισης||
Full Name -<\/B> Used by the GUIclient in the list of active phones|Nombre completo -</B> usado por el GUIclient en la lista de teléfonos activos|Πλήρες Ονομα -</B> Χρησιμοποιείται από τον χρήστη GUI στην λίστα ενεργών τηλεφώνων||
Company -<\/B> Purely for administrative notes|Compañía -</B> solamente para las notas administrativas|Εταιρία -</B> Απλά για σημειώσεις διαχείρισης||
Picture -<\/B> Not yet Implemented|Cuadro -</B> todavía no puesto en ejecución|Εικόνα -</B> Δεν έχει υλοποιηθεί ακόμα||
New Messages -<\/B> Number of new voicemail messages for this phone on the Asterisk server|Nuevos mensajes -</B> número de los nuevos mensajes del Buzón de Voz para este teléfono en el servidor del asterisco|Νέα Μηνύματα -</B> Αριθμός νέων φωνητικών μηνυμάτων για αυτό το τηλέφωνο στον διακομιστή Asterisk||
Old Messages -<\/B> Number of old voicemail messages for this phone on the Asterisk server|Viejos mensajes -</B> número de los viejos mensajes del Buzón de Voz para este teléfono en el servidor del asterisco|Παλαιά Μηνύματα -</B> Αριθμός παλαιών φωνητικών μηνυμάτων για αυτό το τηλέφωνο στον διακομιστή Asterisk||
Client Protocol -<\/B> The protocol that the phone uses to connect to the Asterisk server: SIP, IAX2, Zap . Also, there is EXTERNAL for remote dial numbers or speed dial numbers that you want to list as phones|Protocolo del cliente -</B> el protocolo que el teléfono utiliza para conectar con el servidor del asterisco: El Sip, IAX2, Zap. También, para los números External remotos o los números SpeedDial que usted desea enumerar como teléfonos|Πρωτόκολλο Πελάτη -</B> Το πρωτόκολλο που χρησιμοποιεί το τηλέφωνο για συνδεθεί στον διακομιστή Asterisk: SIP, IAX2, Zap.||
Local GMT -<\/B> The difference from Greenwich Mean time, or ZULU time where the phone is located. DO NOT ADJUST FOR DAYLIGHT SAVINGS TIME. This is used by the VICIDIAL campaign to accurately display the time and customer time|GMT local -</B> La diferencia a partir del tiempo malo del ZULÚ del time(or de Greenwich) donde se localiza el teléfono. NO AJUSTE POR TIEMPO DE LOS AHORROS DE LA LUZ DEL DÍA. Esto es utilizada por la campaña de VICIDIAL para exhibir exactamente el tiempo y el tiempo del cliente|Τοπική GMT -</B> Η διαφορά από την GMT όπου το τηλέφωνο βρίσκεται. Μην το ρυθμίσετε για DAYLIGHT SAVINGS ΩΡΑ. Αυτή χρησιμοποιείται από την VICIDIAL εκστρατεία για την επακριβή εμφάνιση της ώρας||
Manager Login -<\/B> This is the login that the GUI clients for this phone will use to access the Database where the server data resides|Conexión del encargado -</B> Ésta es la conexión que los clientes del GUI para este teléfono utilizarán tener acceso a la base de datos donde residen los datos del servidor|Σύνδεση Διαχειριστή -</B> Αυτή είναι η σύνδεση που χρησιμοποιούν οι GUI χρήστες του τηλεφώνου, για πρόσβαση στην Βάση Δεδομένων όπου ο διακομιστής δεδομένων βρίσκεται||
Manager Secret -<\/B> This is the password that the GUI clients for this phone will use to access the Database where the server data resides|Secreto del encargado -</B> Ésta es la contraseña que los clientes del GUI para este teléfono utilizarán tener acceso a la base de datos donde residen los datos del servidor|Μυστικό Διαχειριστή -</B> Αυτός είναι ο κωδικός που χρησιμοποιούν οι GUI χρήστες του τηλεφώνου, για πρόσβαση στην Βάση Δεδομένων όπου ο διακομιστής δεδομένων βρίσκεται||
VICIDIAL Default User -<\/B> This is to place a default value in the VICIDIAL user field whenever this phone user opens the astVICIDIAL client app. Leave blank for no user|Usuario del defecto de VICIDIAL -</B> éste debe poner un valor prefijado en el campo del usuario de VICIDIAL siempre que este usuario del teléfono abra a cliente app de astVICIDIAL. Deje el espacio en blanco para ningún usuario|VICIDIAL Προκαθορισμένος Χρήστης -</B> Εδώ ορίζεται μία προκαθορισμένη τιμή χρήστη, οπουδήποτε αυτός ο χρήστης τηλεφώνου ανοίξει την εφαρμογή VICIDIAL. Αφήστε κενό για κανένα χρήστη||
VICIDIAL Default Pass -<\/B> This is to place a default value in the VICIDIAL password field whenever this phone user opens the astVICIDIAL client app. Leave blank for no pass|Paso del defecto de VICIDIAL -</B> éste debe poner un valor prefijado en el campo de la contraseña de VICIDIAL siempre que este usuario del teléfono abra a cliente app de astVICIDIAL. Deje el espacio en blanco para ningún paso|VICIDIAL Προκαθορισμένος Κωδικός -</B> Εδώ ορίζεται μία προκαθορισμένη τιμή κωδικού, οπουδήποτε αυτός ο χρήστης τηλεφώνου ανοίξει την εφαρμογή VICIDIAL. Αφήστε κενό για κανένα κωδικό||
VICIDIAL Default Campaign -<\/B> This is to place a default value in the VICIDIAL campaign field whenever this phone user opens the astVICIDIAL client app. Leave blank for no campaign|Campaña del defecto de VICIDIAL -</B> éste debe poner un valor prefijado en el campo de la campaña de VICIDIAL siempre que este usuario del teléfono abra a cliente app de astVICIDIAL. Deje el espacio en blanco para ninguna campaña|VICIDIAL Προκαθορισμένη Εκστρατεία -</B> Εδώ ορίζεται μία προκαθορισμένη τιμή εκστρατείας, οπουδήποτε αυτός ο χρήστης τηλεφώνου ανοίξει την εφαρμογή VICIDIAL. Αφήστε κενό για καμία εκστρατεία||
Park Exten -<\/B> This is the default Parking extension for the client apps. Verify that a different one works before you change this|Parque Exten -</B> Ésta es la extensión del estacionamiento del defecto para los apps del cliente. Verifique que diverso trabaje antes de que usted cambie esto|Εσ.Σύνδ. Στάθμευσης -</B> Αυτή είναι η προκαθορισμένη εσωτ.σύνδεση Στάθμευσης για τις εφαρμογές του χρήστη||
Conf Exten -<\/B> This is the default Conference park extension for the client apps. Verify that a different one works before you change this|Conf Exten -</B> Ésta es la extensión del parque de la conferencia del defecto para los apps del cliente. Verifique que diverso trabaje antes de que usted cambie esto|Εσ.Σύνδ. Συνδιάλεξης -</B> Αυτή είναι η προκαθορισμένη εσωτ.σύνδεση Συνδιάλεξης για τις εφαρμογές του χρήστη||
VICIDIAL Park Exten -<\/B> This is the default Parking extension for VICIDIAL client app. Verify that a different one works before you change this|Parque Exten de VICIDIAL -</B> Ésta es la extensión del estacionamiento del defecto para el cliente app de VICIDIAL. Verifique que diverso trabaje antes de que usted cambie esto|||
VICIDIAL Park File -<\/B> This is the default VICIDIAL park extension file name for the client apps. Verify that a different one works before you change this. limited to 10 characters|Archivo del parque de VICIDIAL -</B> éste es el nombre del archivo de la extensión del parque del defecto VICIDIAL para los apps del cliente. Verifique que diverso trabaje antes de que usted cambie éste limitado a 10 caracteres|||
Monitor Prefix -<\/B> This is the dialplan prefix for monitoring of Zap channels automatically within the astGUIclient app. Only change according to the extensions.conf ZapBarge extensions records|Prefijo del monitor -</B> éste es el prefijo dialplan para supervisar de zap los canales automáticamente dentro del app astGUIclient. Cambie solamente según los expedientes de extensiones de extensions.conf ZapBarge|||
Recording Exten -<\/B> This is the dialplan extension for the recording extension that is used to drop into meetme conferences to record them. It usually lasts upto one hour if not stopped. verify with extensions.conf file before changing|Grabación Exten -</B> Ésta es la extensión dialplan para la extensión de la grabación que se utiliza para caer en conferencias del meetme para registrarlas. Dura generalmente hasta que una hora si no parada verifica con el archivo de extensions.conf antes de cambiar|||
VMAIL Main Exten -<\/B> This is the dialplan extension going to check your voicemail. verify with extensions.conf file before changing|VMAIL Exten principal -</B> Ésta es la extensión dialplan que va a comprobar su voicemail. verifica con el archivo de extensions.conf antes de cambiar|||
VMAIL Dump Exten -<\/B> This is the dialplan prefix used to send calls directly to a user's voicemail from a live call in the astGUIclient app. verify with extensions.conf file before changing|Descarga Exten de VMAIL -</B> éste es el prefijo dialplan usado para enviar llamadas directamente al voicemail de un usuario de una llamada viva en el app. astGUIclient verifica con el archivo de extensions.conf antes de cambiar|||
Exten Context -<\/B> This is the dialplan context that this phone primarily uses. It is assumed that all numbers dialed by the client apps are using this context so it is a good idea to make sure this is the most wide context possible. verify with extensions.conf file before changing|Contexto de Exten -</B> éste es el contexto dialplan que este teléfono utiliza sobre todo. Se asume que todos los números marcados por los apps del cliente están utilizando este contexto así que es una buena idea cerciorarse de que éste es el contexto más amplio posible verifica con el archivo de extensions.conf antes de cambiar|||
DTMF send Channel -<\/B> This is the channel string used to send DTMF sounds into meetme conferences from the client apps. Verify the exten and context with the extensions.conf file|DTMF envían el canal -</B> Ésta es la secuencia del canal usada para enviar sonidos de DTMF en conferencias del meetme de los apps del cliente. Verifique que exten y contexto con el archivo de extensions.conf|||
Outbound Call Group -<\/B> This is the channel group that outbound calls from this phone are placed out of. There are a couple routines in the client apps that use this. For Zap channels you want to use something like Zap\/g2 , for IAX2 trunks you would want to use the full IAX prefix like IAX2\/VICItest1:secret@10.10.10.15:4569. Verify the trunks with the extensions.conf file, it is usually what you have defined as the TRUNK global variable at the top of the file|Grupo de salida de la llamada -</B> éste es el grupo de canal que las llamadas de salida de este teléfono están puestas de. Hay rutinas de un par en los apps del cliente que utilizan esto. Para zap los canales que usted desea utilizar algo como Zap/g2, porque los troncos IAX2 usted desearía utilizar el prefijo completo de IAX como IAX2/VICItest1:secret@10.10.10.15:4569. Verifique que los troncos con el file(it de extensions.conf sean generalmente lo que usted ha definido como la variable global del TRUNK en la tapa del archivo)|Εξερχόμενη ομάδα κλήσης -</B> αυτό είναι η ομάδα καναλιών ότι οι εξερχόμενες κλήσεις από αυτό το τηλέφωνο τοποθετούνται από. Υπάρχουν ρουτίνες ζευγών στον πελάτη apps ότι χρήση αυτό. Για τα κανάλια Zap θέλετε να χρησιμοποιήσετε κάτι σαν Zap/g2, για IAX2 τους κορμούς που θα θέλατε να χρησιμοποιήσετε το πλήρες πρόθεμα IAX όπως IAX2/VICItest1:secret@10.10.10.15:4569. ελέγξτε τους κορμούς με το αρχείο extensions.conf, είναι συνήθως τι έχετε ορίσει ως ο ΚΟΡΜΌΣ τη σφαιρική μεταβλητή στην κορυφή του αρχείου||
Browser Location -<\/B> This is applicable to only UNIX\/LINUX clients, the absolute path to Mozilla or Firefox browser on the machine. verify this by launching it manually|Localización del browser -</B> esto es aplicable solamente a los clientes de UNIX/LINUX, el camino absoluto a Mozilla o el browser de Firefox en la máquina verifica esto lanzándolo manualmente|||
Install Directory -<\/B> This is the place where the astGUIclient and astVICIDIAL scripts are located on your machine. For Win32 it should be something like C:\\AST_VICI and for UNIX it should be something like \/usr\/local\/perl_TK. verify this manually|Instale el directorio -</B> éste es el lugar en donde las escrituras astGUIclient y de astVICIDIAL están situadas en su máquina. Para Win32 debe ser algo como C:\AST_VICI y para UNIX debe ser algo como /usr/local/perl_TK. verifica esto manualmente|||
CallerID URL -<\/B> This is the web address of the page used to do custom callerID lookups. default testing address is: http:\/\/astguiclient.sf.net\/test_callerid_output.php|URL de CallerID -</B> Ústa es la dirección de la tela de la página usada para hacer operaciones de búsqueda de encargo del callerID que es la dirección de prueba del defecto: http://astguiclient.sf.net/test_callerid_output.php|||
VICIDIAL Default URL -<\/B> This is the web address of the page used to do custom VICIDIAL Web Form queries. default testing address is: http:\/\/astguiclient.sf.net\/test_VICIDIAL_output.php|URL del defecto de VICIDIAL -</B> Ésta es la dirección de la tela de la página usada para hacer preguntas de encargo de la forma del Web de VICIDIAL que es la dirección de prueba del defecto: http://astguiclient.sf.net/test_VICIDIAL_output.php|VICIDIAL Προκαθορισμένο URL -</B> Αυτή είναι η δη ιστοσελίδας που χρησιμοποιείται για προσαρμοσμένα VICIDIAL ερωτήματα ιστοσελίδας||
Call Logging -<\/B> This is set to true if the call_log.agi file is in place in the extensions.conf file for all outbound and hangup 'h' extensions to log all calls. This should always be 1 because it is manditory for many astGUIclient and VICIDIAL features to work properly|Registración de la llamada -</B> esto se fija para verdad si el archivo de call_log.agi está en lugar en el archivo de extensions.conf para todo el de salida y las extensiones del retraso ' h ' para registrar todo llama. Ústa debe siempre ser 1 porque es manditory para muchos astGUIclient y características de VICIDIAL a trabajar correctamente|Καταγραφή Γεγονότων Κλήσης -</B> Αυτό τοποθετείται σε αληθές εάν το αρχείο call_log.agi βρίσκεται στο αρχείο extensions.conf για τις εξερχόμενες κλήσεις και για τις εσωτ.συνδέσεις 'h' που κλείνουν. Αυτό πρέπει πάντα να είναι 1 για να δουλεύουν σωστά πολλά χαρακτηριστικά των εφαρμογών||
User Switching -<\/B> Set to true to allow user to switch to another user account. NOTE: If user switches they can initiate recording on the new user's phone conversation|Conmutación del usuario -</B> fije para verdad para permitir que el usuario cambie a otra cuenta del usuario. NOTA: Si los interruptores del usuario ellos pueden iniciar la grabación en la conversación de teléfono del nuevo usuario|Μεταγωγή Χρήστη -</B> Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να μεταβούν σε άλλον λογαριασμό χρήστη||
Conferencing -<\/B> Set to true to allow user to start conference calls with upto six external lines|Comunicación -</B> fije para verdad para permitir que el usuario comience llamadas de conferencia con hasta que seis líneas externas|Σε συνδιάλεξη -</B> Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να ξεκινούν συνδιαλέξεις μέχρι 6 εξωτερικές γραμμές||
Admin Hangup -<\/B> Set to true to allow user to be able to hangup any line at will through astGUIclient. Good idea only to enable this for Admin users|Retraso del Admin -</B> sistema a verdad para permitir que el usuario pueda al retraso cualquier línea en la voluntad con astGUIclient. Buena idea de permitir solamente esto para los usuarios del Admin|Διαχειριστού Κλείσιμο-</B> Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να κλείνουν κάθε γραμμή||
Admin Hijack -<\/B> Set to true to allow user to be able to grab and redirect to their extension any line at will through astGUIclient. Good idea only to enable this for Admin users. But is very useful for Managers|Secuestro del Admin -</B> fije para verdad para permitir que el usuario pueda asir y volver a dirigir a su extensión cualquier línea en la voluntad con astGUIclient. Buena idea de permitir solamente esto para los usuarios del Admin. Pero es muy útil para los encargados|Διαχειριστού Κλέψιμο -</B> Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να λαμβάνουν και να ανακατευθύνουν στην εσωτ.σύνδεσή τους οποιαδήποτε γραμμή||
Admin Monitor -<\/B> Set to true to allow user to be able to grab and redirect to their extension any line at will through astGUIclient. Good idea only to enable this for Admin users. But is very useful for Managers and as a training tool|Monitor del Admin -</B> fije para verdad para permitir que el usuario pueda asir y volver a dirigir a su extensión cualquier línea en la voluntad con astGUIclient. Buena idea de permitir solamente esto para los usuarios del Admin. Pero es muy útil para los encargados y como herramienta del entrenamiento|Διαχειριστού Παρακολούθηση -</B> Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να λαμβάνουν και να ανακατευθύνουν στην εσωτ.σύνδεσή τους οποιαδήποτε γραμμή||
Call Park -<\/B> Set to true to allow user to be able to park calls on astGUIclient hold to be picked up by any other astGUIclient user on the system. Calls stay on hold for upto a half hour then hangup. Usually enabled for all|Parque de llamada -</B> el sistema a verdad para permitir que el usuario pueda parquear invita el asimiento astGUIclient para ser tomado por cualquier otro usuario astGUIclient en el sistema. Las llamadas permanecen en el asimiento para hasta que un retraso de la media-hora entonces. Permitido generalmente para todos|Στάθμευση Κλήσης -</B> Εάν το θέσετε σε αληθές θα επιτρέπετε σε χρήστες να σταθμεύουν κλήσεις και κλήσεις σε αναμονή να διαχειρίζονται από οποιοδήποτε άλλο χρήστη. Οι κλήσεις μένουν σε αναμονή για 30 δευτερόλεπτα και μετά κλείνουν. Συνήθως ενεργοποιημένη για όλς||
Updater Check -<\/B> Set to true to display a popup warning that the updater time has not changed in 20 seconds. Useful for Admin users|Cheque de Updater -</B> fije para verdad para exhibir una advertencia del popup que el tiempo del updater no ha cambiado en 20 segundos. Útil para los usuarios del Admin|Ενεργοποιημένη Ουρά -</B> Εάν το θέσετε σε αληθές θα εμφανίζεται ένα παράθυρο ειδοποίησης, ότι η ώρα ενημέρωσης δεν έχει αλλάξει σε 20 δευτερόλεπτα||
AF Logging -<\/B> Set to true to log many actions of astGUIclient usage to a text file on the user's computer|Af que registra -</B> fije para verdad para registrar muchas acciones del uso astGUIclient a un archivo de texto en la computadora del usuario|AF Καταγραφή Γεγονότος -</B> Εάν το θέσετε σε αληθές θα καταγράφονται οι ενέργειες χρήσης του astGUIclient σε ένα αρχείο στον υπολογιστή του χρήστη||
Queue Enabled -<\/B> Set to true to have client apps use the Asterisk Central Queue system. Required for VICIDIAL and recommended for all users|La coleta permitió -</B> al sistema verdad para hacer que los apps del cliente utilicen el sistema central de la coleta del asterisco. Requerido para VICIDIAL y recomendado para todos los usuarios|Ενεργοποιημένη Ουρά -</B> Εάν το θέσετε σε αληθές οι εφαρμογές θα χρησιμοποιούν το ACQS||
CallerID Popup -<\/B> Set to true to allow for numbers defined in the extensions.conf file to send CallerID popup screens to astGUIclient users|CallerID Popup -</B> sistema a verdad para tener en cuenta los números definidos en el archivo de extensions.conf para enviar las pantallas del popup de CallerID a los usuarios astGUIclient|Υπερεμφανιζόμενο παραθύρο CallerID -</B> Εάν το θέσετε σε αληθές θα επιτρέψετε σε αριθμούς ορισμένους στο αρχείο extensions.conf, να στέλνουν οθόνες με CallerID στους astGUIclient χρήστες||
VMail Button -<\/B> Set to true to display the VOICEMAIL button and the messages count display on astGUIclient|Botón de VMail -</B> fije para verdad para exhibir el botón de VOICEMAIL y los mensajes cuentan la exhibición en astGUIclient|VMail Πλήκτρο -</B> Εάν το θέσετε σε αληθές θα εμφανιστεί το πλήκτρο VOICEMAIL και τα μηνύματα μπορούν να εμφανίζονται στο astGUIclient||
Fast Refresh -<\/B> Set to true to enable a new rate of refresh of call information for the astGUIclient. Default disabled rate is 1000 ms ,1 second. Can increase system load if you lower this number|Rápido restaure -</B> fije para verdad para permitir un nuevo índice de restauran de la información de la llamada para el astGUIclient. La tarifa inhabilitada defecto es el ms 1000 (1 segundo). Puede aumentar la carga de sistema si usted baja este número|Ταχύτητα Ανανέωσης -</B> Εάν το σετε σε αληθές ενεργοποιείται ένα νέο ρυθμό ανανέωσης πληροφοριών κλήσης για το astGUIclient. Προκαθορισμένος απενεργοποιημένος ρυθμός είναι 1000 ms (1 δευτερόλεπτο)||
Fast Refresh Rate -<\/B> in milliseconds. Only used if Fast Refresh is enabled. Default disabled rate is 1000 ms ,1 second. Can increase system load if you lower this number|Rápido restaure la tarifa -</B> en milisegundos. Utilizado solamente si es rápido restaure se permite. La tarifa inhabilitada defecto es el ms 1000 (1 segundo). Puede aumentar la carga de sistema si usted baja este número|Ρυθμός Ανανέωσης Ταχύτητας -</B> σε χιλιοστά δευτερολέπτου. Χρημοποιείται μόνο εάν η Ταχύτητα Ανανέωσης είναι ενεργοποιημένη. Προκαθορισμένος απενεργοποιημένος ρυθμός είναι 1000 ms (1 δευτερόλεπτο)||
Persistant MySQL -<\/B> If enabled the astGUIclient connection will remain connected instead of connecting every second. Useful if you have a fast refresh rate set. It will increase the number of connections on your MySQL machine|Persistant MySQL -</B> si está permitida la conexión astGUIclient seguirá conectada en vez de conectar cada segundo. Útil si usted hace que un rápido restaure la tarifa fijada. Aumentará el número de conexiones en su máquina de MySQL|Συνεχής MySQL -</B> Εάν είναι ενεργοποιημένο, το astGUIclient θα παραμένει συνδεμένο αντί να συνδέεται κάθε δευτερόλεπτο||
Auto Dial Next Number -<\/B> If enabled the VICIDIAL client will dial the next number on the list automatically upon disposition of a call unless they selected to "Stop Dialing" on the disposition screen|Número siguiente del dial auto -</B> si está permitido el cliente de VICIDIAL marcará el número siguiente en la lista automáticamente sobre la disposición de una llamada a menos que seleccionaran "para parar el marcar" en la pantalla de la disposición|Αυτόματη Κλήση Επόμενου Αριθμ -</B> Εάν είναι ενεργοποιημένο, μετά από τον τερματισμό θα γίνει κλήση του επόμενου αριθμού, εκτός εάν επιλέξουμε "Μη κάνεις κλήσεις"||
Stop Rec after each call -<\/B> If enabled the VICIDIAL client will stop whatever recording is going on after each call has been dispositioned. Useful if you are doing a lot of recording or you are using a web form to trigger recording|Pare Rec después de cada llamada -</B> si está permitido el cliente de VICIDIAL parará se está encendiendo cualquier grabación después de que haya sido cada llamada dispositioned. Útil si usted está haciendo muchos de la grabación o usted están utilizando una forma de la tela para accionar la grabación|Σταμάτα την ηχογράφηση μετά από κάθε κλήση -</B> Εάν είναι ενεργοποιημένο η ηχογράφηση θα σταματήσει μετά τον τερματισμό||
DBX Server -<\/B> The MySQL database server that this user should be connecting to|Servidor de DBX -</B> el servidor de la base de datos de MySQL con el cual este usuario debe conectar|DBΧ Διακομιστής -</B> Ο διακομιστής της Βάσης Δεδομένων MySQL που ο χρήστης θα συνδεθεί||
DBX Database -<\/B> The MySQL database that this user should be connecting to. Default is asterisk|Base de datos de DBX -</B> la base de datos de MySQL con la cual este usuario debe conectar. El defecto es asterisco|DBΧ Βάση Δεδομένων -</B> Η βάση δεδομένων MySQL στην οποία ο χρήστης θα συνδεθεί. Η προκαθορισμένη είναι asterisk||
DBX User -<\/B> The MySQL user login that this user should be using when connecting. Default is cron|Usuario de DBX -</B> la conexión del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es cron|DBΧ Χρήστης -</B> Ο χρήστης MySQL για την σύνδεση. Ο προκαθορισμένος είναι cron||
DBX Pass -<\/B> The MySQL user password that this user should be using when connecting. Default is 1234|Paso de DBX -</B> la contraseña del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es 1234|DBΧ Κωδικός -</B> Ο κωδικός χρήστη MySQL που ο χρήστης χρησιμοποιεί όταν συνδέεται. Ο προκαθορισμένος είναι 1234||
DBX Port -<\/B> The MySQL TCP port that this user should be using when connecting. Default is 3306|DBX viran -</B> el puerto de MySQL hacia el lado de babor TCP que este usuario debe utilizar al conectar. El defecto es 3306|DBΧ Πόρτα -</B> Η MySQL TCP πόρτα που ο χρήστης χρησιμοποιεί όταν συνδέεται. Η προκαθορισμένη είναι 3306||
DBY Server -<\/B> The MySQL database server that this user should be connecting to|Servidor de DBY -</B> el servidor de la base de datos de MySQL con el cual este usuario debe conectar|DBY Διακομιστής -</B> Ο διακομιστής της Βάσης Δεδομένων MySQL που ο χρήστης θα συνδεθεί||
DBY Database -<\/B> The MySQL database that this user should be connecting to. Default is asterisk|Base de datos de DBY -</B> la base de datos de MySQL con la cual este usuario debe conectar. El defecto es asterisco|DBY Βάση Δεδομένων -</B> Η βάση δεδομένων MySQL στην οποία ο χρήστης θα συνδεθεί. Η προκαθορισμένη είναι asterisk||
DBY User -<\/B> The MySQL user login that this user should be using when connecting. Default is cron|Usuario de DBY -</B> la conexión del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es cron|DBY Χρήστης -</B> Ο χρήστης MySQL για την σύνδεση. Ο προκαθορισμένος είναι cron||
DBY Pass -<\/B> The MySQL user password that this user should be using when connecting. Default is 1234|Paso de DBY -</B> la contraseña del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es 1234|DBY Κωδικός -</B> Ο κωδικός χρήστη MySQL που ο χρήστης χρησιμοποιεί όταν συνδέεται. Ο προκαθορισμένος είναι 1234||
DBY Port -<\/B> The MySQL TCP port that this user should be using when connecting. Default is 3306|DBY viran -</B> el puerto de MySQL hacia el lado de babor TCP que este usuario debe utilizar al conectar. El defecto es 3306|DBY Πόρτα -</B> Η MySQL TCP πόρτα που ο χρήστης χρησιμοποιεί όταν συνδέεται. Η προκαθορισμένη είναι 3306||
Redirect command sent for channel|Vuelva a dirigir el comando enviado para el canal|Η εντολή ανακατεύθυνσης στάλθηκε για το κανάλι||
Look up this customer in Customer Service System|Mire para arriba a este cliente en sistema del servicio de cliente|Αναζήτηση του Πελάτη στο Σύστημα Εξυπηρέτησης Πελατών||
Redirect command FAILED for channel|Vuelva a dirigir el comando FALLADO para el canal|Η εντολή ανακατεύθυνσης ΑΠΕΤΥΧΕ για το κανάλι||
PLEASE SELECT A NUMBER AND DATE ABOVE AND CLICK SUBMIT|SELECCIONE POR FAVOR Un NÚMERO Y La FECHA ARRIBA Y El TECLEO SOMETEN|ΠΑΡΑΚΑΛΩ ΕΠΙΛΕΞΤΕ ΕΝΑΝ ΑΡΙΘΜΟ ΚΑΙ ΗΜΕΡΟΜΗΝΙΑ ΑΝΩΤΕΡΩ, ΚΑΙ ΠΑΤΗΣΤΕ ΕΠΙΒΕΒΑΙΩΣΗ||
Total Calls That came into this number|Llamadas totales que vinieron en este número|Συνολικές κλήσεις που ήρθαν σε αυτό τον αριθμό||
Average Call Length(seconds) for all Calls|La llamada media Length(seconds) para toda llama|έσος όρος κλήσεων(σε δευτερόλεπτα) για όλες τις κλήσεις||
Total DROP Calls: (less than 10 seconds)|Llamadas Totales de la GOTA: (menos de 10 segundos)|Συνολικές DROP Κλήσεις: (μικρότερες από 10 δευτερόλεπτα)||
Average Call Length(seconds) for DROP Calls|Llamada media Length(seconds) para las llamadas de la GOTA|Μέσος όρος κλήσεων(σε δευτερόλεπτα) για DROP κλήσεις||
GRAPH IN 15 MINUTE INCREMENTS OF TOTAL CALLS|GRÁFICO EN 15 INCREMENTOS MINUCIOSOS DE LLAMADAS TOTALES|ΓΡΑΦΙΚΗ ΠΑΡΑΣΤΑΣΗ ΜΕ 15ΛΕΠΤΕΣ ΑΥΞΗΣΕΙΣ ΤΩΝ ΣΥΝΟΛΙΚΩΝ ΚΛΗΣΕΩΝ||
Click on the channel below that you would like to have directed to your phone|Chasque encendido el canal debajo de ése que usted quisiera haber dirigido a su teléfono|Πατήστε στο κανάλι παρακάτω, που θα επιθυμούσατε να έχετε κατευθύνει στο τηλέφωνό σας||
LAST 1000 CALLS FOR DATE RANGE|LLAMADAS DEL ÚLTIMO 1000 PARA LA GAMA DE LA FECHA|ΤΕΛΕΥΤΑΙΕΣ 1000 ΚΛΗΣΕΙΣ ΓΙΑ ΤΟ ΔΙΑΣΤΗΜΑ ΗΜΕΡΟΜΗΝΙΑΣ||
Click here to see what leads are in the hopper right now|Chasque aquí para ver qué plomos están en la tolva ahora|Πατήστε εδώ για να δείτε ποιοι καθοδηγητές είναι στον hopper τώρα||
CUSTOM STATUSES WITHIN THIS CAMPAIGN|ESTADOS DE ENCARGO DENTRO DE ESTA CAMPAÚA|ΠΡΟΣΑΡΜΟΣΜΕΝΕΣ ΚΑΤΑΣΤΑΣΕΙΣ ΣΤΗΝ ΕΚΣΤΡΑΤΕΙΑ||
PLEASE SELECT A CAMPAIGN ABOVE AND CLICK SUBMIT|SELECCIONE POR FAVOR Una CAMPAÚA ARRIBA Y El TECLEO SOMETE|ΠΑΡΑΚΑΛΩ ΕΠΙΛΕΞΤΕ ΜΙΑ ΕΚΣΤΡΑΤΕΙΑ ΑΝΩΤΕΡΩ ΚΑΙ ΠΑΤΗΣΤΕ ΕΠΙΒΕΒΑΙΩΣΗ||
PLEASE SELECT A CAMPAIGN AND DATE ABOVE AND CLICK SUBMIT|SELECCIONE POR FAVOR Una CAMPAÚA Y La FECHA ARRIBA Y El TECLEO SOMETEN|ΠΑΡΑΚΑΛΩ ΕΠΙΛΕΞΤΕ ΜΙΑ ΕΚΣΤΡΑΤΕΙΑ ΚΑΙ ΜΙΑ ΗΜΕΡΟΜΗΝΙΑ ΑΝΩΤΕΡΩ, ΚΑΙ ΠΑΤΗΣΤΕ ΕΠΙΒΕΒΑΙΩΣΗ||
GRAPH IN 15 MINUTE INCREMENTS OF TOTAL CALLS PLACED FROM THIS CAMPAIGN|GRÁFICO EN 15 INCREMENTOS MINUCIOSOS DE LAS LLAMADAS TOTALES PUESTAS DE ESTA CAMPAÚA|ΓΡΑΦΙΚΗ ΠΑΡΑΣΤΑΣΗ ΜΕ 15ΛΕΠΤΕΣ ΑΥΞΗΣΕΙΣ ΤΩΝ ΣΥΝΟΛΙΚΩΝ ΚΛΗΣΕΩΝ ΠΟΥ ΤΟΠΟΘΕΤΟΥΝΤΑΙ ΑΠΟ ΑΥΤΗΝ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ||
ERROR: The file does not have the required number of fields to process it|ERROR: El archivo no tiene el número requerido de los campos para procesarlo|Λάθος: Το αρχείο δεν έχει τον απαιτούμενο αριθμό πεδίων||
ERROR: File exceeds the 8MB limit|ERROR: El archivo excede el límite 8MB|Λάθος: Το αρχείο ξεπέρασε το όριο των 8ΜΒ||
Please enter the group you want to get hourly stats for|Inscriba por favor a grupo que usted desea conseguir el stats cada hora para|Παρακαλώ, καταχωρήστε την ομάδα για την οποία θέλετε στατιστικά ανά ώρα||
The search variables you entered are not active in the system|Las variables de la búsqueda que usted incorporó no son activas en el sistema|Οι μεταβλητές αναζήτησης που καταχωρήσατε δεν είναι ενεργές στο σύστημα||
Please go back and double check the information you entered and submit again|Va por favor detrás y dobla el cheque la información que usted incorporó y somete otra vez|Παρακαλώ, επιστρέψτε πίσω και ελέγξτε τις πληροφορίες που καταχωρήσατε και προσπαθήστε πάλι||
Click here to see the Lead Details|Chasque aquí para ver los detalles del plomo|Πατήστε εδώ για να δείτε τις λεπτομέρειες του καθοδηγητή||
SERVERS TABLE|TABLA DE LOS SERVIDORES|ΠΙΝΑΚΑΣ ΔΙΑΚΟΜΙΣΤΩΝ||
Server ID -<\/B> This field is where you put the Asterisk servers name, doesnt have to be an official domain sub, just a nickname to identify the server to Admin users|ID Del Servidor -</B> Este campo es donde usted pone el nombre del servidor del asterisco, no tiene que ser un submarino oficial del dominio, apenas un apodo para identificar el servidor a los usuarios del Admin|ID Διακομιστή -</B> Σε αυτό το πεδίο ορίζεται το όνομα του διακομιστή Asterisk, είναι μόνο μία επονομία ώστε να αναγνωρίζεται από τους διαχειριστές||
Server Description -<\/B> The field where you use a small phrase to describe the Asterisk server|Descripción del servidor -</B> el campo donde usted utiliza una frase pequeña para describir el servidor del asterisco|Περιγραφή Διακομιστή -</B> Το πεδίο στο οποίο περιγράφεται με μία φράση τον διακομιστή Asterisk||
Server IP Address -<\/B> The field where you put the Network IP address of the Asterisk server|IP address del servidor -</B> el campo donde usted puso el IP address de la red del servidor del asterisco|Δνση IP Διακομιστή -</B> Το πεδίο που ορίζεται η δνση IP του δικτύου του διακομιστή Asterisk||
Active -<\/B> Set whether the Asterisk server is active or inactive|Activo -</B> fije si el servidor del asterisco es activo o inactivo|Ενεργός -</B> Ορίζει κατά πόσον ο διακομιστής Asterisk είναι ενεργός ή μη ενεργός||
Asterisk Version -<\/B> Set the version of Asterisk that you have installed on this server. Examples: '1.2', '1.0.8', '1.0.7', 'CVS_HEAD', 'REALLY OLD', etc... This is used because versions 1.0.8 and 1.0.9 have a different method of dealing with Local\/ channels, a bug that has been fixed in CVS v1.0, and need to be treated differently when handling their Local\/ channels. Also, current CVS_HEAD and the 1.2 release tree uses different manager and command output so it must be treated differently as well|Versión del asterisco -</B> fije la versión del asterisco que usted ha instalado en este servidor. Ejemplos: ' 1.2 ', ' 1.0.8 ', ' 1.0.7 ', ' CVS_HEAD ', ' REALMENTE VIEJO ', etc... Se utiliza esto porque las versiones 1.0.8 y 1.0.9 tienen un diverso método de ocuparse del insecto local del channels(a que ha estado fijado en CVS v1.0) y necesidad de ser tratado diferentemente cuando la manipulación de su Local/ acanala. También, CVS_HEAD actual y las 1.2 aplicaciones diverso encargado y comando del árbol del lanzamiento hicieron salir así que debe ser tratado diverso también|Εκδοση Asterisk||
Max VICIDIAL Trunks -<\/B> This field will determine the maximum number of lines that the VICIDIAL auto-dialer will attempt to call on this server. If you want to dedicate two full PRI T1s to VICIDIALing on a server then you would set this to 46. Default is 96|Troncos máximos de VICIDIAL -</B> este campo determinará el número de las líneas máximo que el auto-dialer de VICIDIAL procurará invitar este servidor. Si usted desea dedicar dos PRI llenos T1 a VICIDIALing en un servidor entonces usted fijaría esto a 46. E1 defecto es 96|Μέγιστος Αριθμός Trunk του VICIDIAL -</B> Αυτό το πεδίο θα προσδιορίσει τον μέγιστο αριθμό γραμμών, τις οποίες θα χρησιμοποιήσει η διεργασία αυτόματης κλήσης. Εάν θέλετε να αφιερώσετε δύο PRI σε ένα διακομιστή τότε θα πρέπει να το ορίσετε σε 46. Το προκαθορισμένο είναι 96||
Telnet Host -<\/B> This is the address or name of the Asterisk server and is how the manager applications connect to it from where they are running. If they are running on the Asterisk server, then the default of 'localhost' is fine|Anfitrión del telnet -</B> éste es la dirección o el nombre del servidor del asterisco y es cómo los usos del encargado conectan con él de donde están funcionando. Si están funcionando en el servidor del asterisco, después el defecto del ' localhost ' está muy bien|Telnet Πελάτης -</B> Αυτή είναι η δνση ή το όνομα του διακομιστή Asterisk και το πώς οι εφαρμογές διαχείρισης συνδέονται σε αυτόν, όπου τρέχουν. Το προκαθορισμένο είναι 'localhost'||
Telnet Port -<\/B> This is the port of the Asterisk server Manager connection and is how the manager applications connect to it from where they are running. The default of '5038' is fine for a standard install|El telnet vira hacia el lado de babor -</B> éste es el puerto de la conexión del encargado del servidor del asterisco y es cómo los usos del encargado conectan con ella de donde están funcionando. El defecto de ' 5038 ' está para un estándar instala muy bien|Πόρτα Telnet -</B> Αυτή είνα η πόρτα της σύνδεσης με τον διαχειριστή του διακομιστή Asterisk και το πώς οι εφαρμογές διαχείρισης συνδέονται σε αυτόν, όπου τρέχουν. Το προκαθορισμένο είναι '5038'||
Manager User -<\/B> The username or login used to connect genericly to the Asterisk server manager. Default is 'cron'|Usuario del encargado -</B> el username o la conexión conectaba genericly con el encargado del servidor del asterisco. El defecto es 'cron'|Χρήστης Διαχειριστή -</B> Το όνομα χρήστη που χρησιμοποιείτε γενικά για τον διαχειριστή του διακομιστή Asterisk. Το προκαθορισμένο είναι 'cron'||
Manager Secret -<\/B> The secret or password used to connect genericly to the Asterisk server manager. Default is '1234'|Secreto del encargado -</B> el secreto o la contraseña conectaba genericly con el encargado del servidor del asterisco. El defecto es '1234'|Μυστικό Διαχειριστή -</B> Το μυστικό ή κωδικός που χρησιμοποιείτε γενικά για τον διαχειριστή του διακομιστή Asterisk. Το προκαθορισμένο είνα '1234'||
Manager Update User -<\/B> The username or login used to connect to the Asterisk server manager optimized for the Update scripts. Default is 'updatecron' and assumes the same secret as the generic user|Usuario en modo actualización del encargado -</B> el username o la conexión conectaba con el encargado del servidor del asterisco optimizado para las escrituras de la actualización. Omita es 'updatecron' y asume el mismo secreto que el usuario genérico|Ενημέρωση Χρήστη Διαχειριστή -</B> Το όνομα χρήστη που χρησιμοποιείτε για σύνδεση στον διακομιστή Asterisk, βελτιστοποιημένο για διεργασίες ενημέρωσεις. Το προκαθορισμένο είναι 'updatecron'||
Manager Listen User -<\/B> The username or login used to connect to the Asterisk server manager optimized for scripts that only listen for output. Default is 'listencron' and assumes the same secret as the generic user|El encargado escucha usuario -</B> el username o la conexión usada para conectar con el encargado del servidor del asterisco optimizado para las escrituras que esperan a escuchar solamente salida. Omita es 'listencron' y asume el mismo secreto que el usuario genérico|Αποστολή Χρήστη Διαχειριστή-</B> Το όνομα χρήστη που χρησιμοποιείτε για σύνδεση στον διακομιστή Asterisk, βελτιστοποιημένο για διεργασίες που μόνο ακούν για έξοδο. Το προκαθορισμένο είναι 'listencron'||
Manager Send User -<\/B> The username or login used to connect to the Asterisk server manager optimized for scripts that only send Actions to the manager. Default is 'sendcron' and assumes the same secret as the generic user|El encargado envía a usuario -</B> el username o la conexión usada para conectar con el encargado del servidor del asterisco optimizado para las escrituras que envían solamente acciones al encargado. Omita es 'sendcron' y asume el mismo secreto que el usuario genérico|Αποστολή ήστη Διαχειριστή-</B> Το όνομα χρήστη που χρησιμοποιείτε για σύνδεση στον διακομιστή Asterisk, βελτιστοποιημένο για διεργασίες που μόνο στέλνουν Ενέργειες στον διαχειριστή.Το προκαθορισμένο είναι 'sendcron'||
Server GMT offset -<\/B> The difference in hours from GMT time not adjusted for Daylight-Savings-Time of the server. Default is '-5'|El GMT del servidor compensó -</B> la diferencia sobre horas a partir del tiempo del GMT no ajustado según el Luz del di'a-Ahorro-Tiempo del servidor. El defecto es '-5'|GMT offset Διακομίστε -</B> Η διαφορά σε ώρες από την GMT ώρα που δεν έχει ρυθμιστεί με Daylight-Savings-Time. Το προκαθορισμένο είνα '-5'||
VMail Dump Exten -<\/B> The extension prefix used on this server to send calls directly through agc to a specific voicemail box. Default is '85026666666666'|Descarga Exten -</B> el prefijo de VMail de la extensión usado en este servidor para enviar llamadas directamente a través de agc a una caja específica del voicemail. El defecto es '85026666666666'|VMail εσωτ.σύνδεση απόρριψης -</B> Το πρόθεμα εσωτ.σύνδεσης που χρησιμοποιείται στον διακομιστή για να στείλει τις κλήσεις κατευθείαν μέσω agc σε ένα συγκεκριμένο φωνητικό ταχυδρομείο. Το προκαθορισμένο είναι '85026666666666'||
VICIDIAL AD extension -<\/B> The default extension if none is present in the campaign to send calls to for VICIDIAL auto dialing. Default is '8365'|Extensión del ANUNCIO de VICIDIAL -</B> la extensión del defecto si ninguno está presente en la campaña enviar llamadas para a marcar auto de VICIDIAL. El defecto es '8365'|VICIDIAL AD εσωτ.σύνδεση -</B> Η προκαθορισμένη εσωτ.σύνδεση εάν δεν έχει οριστεί στην εκστρατεία για να στείλει ς κλήσεις στην διεργασία αυτόματης κλήσης. Η προκαθορισμένη είναι '8365'||
Default Context -<\/B> The default dialplan context used for scripts that operate for this server. Default is 'default'|Contexto del defecto -</B> el contexto dialplan del defecto usado para las escrituras que funcionan para este servidor. El defecto es 'defecto'|Προκαθορισμένο Περιεχόμενο -</B> Το προκαθορισμένο περιεχόμενο του σχέδιου κλήσεων για διεργασίες του διακομιστή. Το προκαθορισμένο είναι 'προκαθορισμένο'||
User ID -<\/B> This field is where you put the VICIDIAL users ID number, can be up to 8 digits in length, Must be at least 2 characters in length|Identificación del usuario -</B> este campo es donde usted pone el número de la identificación del usuario de VICIDIAL, puede ser hasta 8 dígitos en longitud, debe ser por lo menos 2 caracteres en longitud|ID Χρήστη -</B> Σε αυτό το πεδίο τοποθετείται ο αριθμός ID του χρήστη, μπορεί να είναι μεταξ 2 και 8 ψηφία||
Password -<\/B> This field is where you put the VICIDIAL users password. Must be at least 2 characters in length|Contraseña -</B> este campo es donde usted pone la contraseña de los usuarios de VICIDIAL. Deben ser por lo menos 2 caracteres en longitud|Κωδικός -</B> Σε αυτό το πεδίο τοποθετείται ο κωδικός του χρήστη στο VICIDIAL. Πρέπει να είναι τουλάχιστον 2 χαρακτήρες||
Full Name -<\/B> This field is where you put the VICIDIAL users full name. Must be at least 2 characters in length|Nombre completo -</B> este campo es donde usted pone el nombre completo de los usuarios de VICIDIAL. Deben ser por lo menos 2 caracteres en longitud|Πλήρες Ονομα -</B> Αυτό το πεδίο είναι που μπορείτε να ορίσετε το πλήρες όνομα των χρηστών VICIDIAL. Πρέπει να είναι τουλάχιστον 2 χαρακτήρες||
User Level -<\/B> This menu is where you select the VICIDIAL users user level. Must be a level of 1 to log into VICIDIAL, Must be level greater than 2 to log in as a closer, Must be user level 8 or greater to get into admin web section|Nivel de usuario -</B> este menú es donde usted selecciona el nivel de usuario de los usuarios de VICIDIAL. Debe ser un nivel de 1 a registrar en VICIDIAL, debe ser llano mayor de 2 a abrirse una sesión como más cercano, deben ser el nivel de usuario 8 o mayor conseguir en la sección de la tela del admin|Επίπεδο Χρήστη -</B> Αυτός ο κατάλογος επιλογών είναι που μπορείτε να επιλέξετε το επίπεδο χρήστη των VICIDIAL χρηστών. Πρέπει να έχει επίπεδο 1 για να συνδεθεί στο σύστημα. Πρέπει να έχει επίπεδο μεγαλύτερο από 2 για να συνδεθεί ως closer. Πρέπει να έχει επίπεδο 8 ή μεγαλύτερο για ενέργειες διαχειριστή||
User Group -<\/B> This menu is where you select the VICIDIAL users group that this user will belong to. This does not have any restrictions at this time, this is just to subdivide users and allow for future features based upon it|Grupo de usuario -</B> este menú es donde usted selecciona a grupo de usuarios de VICIDIAL que este usuario pertenecerá a. Esto no tiene ninguna restricciones en este tiempo, éste es justo subdividir a usuarios y permitir las características futuras basadas sobre él|Ομάδα Χρήστη -</B> Αυτός ο κατάλογος επιλογών είναι που μπορείτε να επιλέξετε την ομάδα χρηστών που ανήκει ο χρήστης||
Phone Login -<\/B> Here is where you can set a default phone login value for when the user logs into vicidial.php. This value will populate the phone_login automatically when the user logs in with their user-pass-campaign in the vicidial.php login screen|Conexión del teléfono -</B> aquí es para donde usted puede fijar un valor de la conexión del teléfono del defecto cuando los registros del usuario en vicidial.php. Este valor poblará el phone_login automáticamente cuando el usuario entra con su usuario-pasar-campaña en la pantalla de la conexión de vicidial.php|Τηλεφωνική σύνδεση -</B> εδώ είναι όπου εσείς μπορεί να θέσει μια αξία τηλεφωνικής σύνδεσης προεπιλογής για όταν τα κούτσουρα χρηστών σε vicidial.php. Αυτή η αξία θα εποικήσει το phone_login αυτόματα όταν συνδέεται ο χρήστης με την χρήστης-πέρασμα-εκστρατεία τους στην οθόνη σύνδεσης vicidial.php||
Phone Pass -<\/B> Here is where you can set a default phone pass value for when the user logs into vicidial.php. This value will populate the phone_pass automatically when the user logs in with their user-pass-campaign in the vicidial.php login screen|Paso del teléfono -</B> aquí es para donde usted puede fijar un valor del paso del teléfono del defecto cuando los registros del usuario en vicidial.php. Este valor poblará los phone_pass automáticamente cuando el usuario entra con su usuario-pasar-campaña en la pantalla de la conexión de vicidial.php|Τηλεφωνικό πέρασμα -</B> εδώ είναι όπου εσείς μπορεί να θέσει μια αξία τηλεφωνικών περασμάτων προεπιλογής για όταν τα κούτσουρα χρηστών σε vicidial.php. Αυτή η αξία θα εποικήσει τα phone_pass αυτόματα όταν συνδέεται ο χρήστης με την χρήστης-πέρασμα-εκστρατεία τους στην οθόνη σύνδεσης vicidial.php||
Delete Users -<\/B> This option if set to 1 allows the user to delete other users of equal or lesser user level from the system|Usuarios de la cancelación -</B> esta opción si el sistema a 1 permite que el usuario suprima a otros usuarios del igual o de poco nivel de usuario del sistema|Διαγράψτε τους χρήστες -</B> αυτή η επιλογή εάν θέστε 1 επιτρέπει στο χρήστη για να διαγράψει άλλους χρήστες του ίσου ή του μικρότερου επιπέδου χρηστών από το σύστημα||
Delete User Groups -<\/B> This option if set to 1 allows the user to delete user groups from the system|Suprima a grupos de usuario -</B> esta opción si el sistema a 1 permite que el usuario suprima a grupos de usuario del sistema|Διαγράψτε τις ομάδες χρηστών -</B> αυτή η επιλογή εάν θέστε 1 επιτρέπει στο χρήστη για να διαγράψει τις ομάδες χρηστών από το σύστημα||
Delete Lists -<\/B> This option if set to 1 allows the user to delete vicidial lists from the system|La cancelación enumera -</B> esta opción si el sistema a 1 permite que el usuario suprima listas vicidial del sistema|Διαγράψτε τους καταλόγους -</B> αυτή η επιλογή εάν θέστε 1 επιτρέπει στο χρήστη για να διαγράψει τους vicidial καταλόγους από το σύστημα||
Delete Campaigns -<\/B> This option if set to 1 allows the user to delete vicidial campaigns from the system|La cancelación hace campaña -</B> esta opción si el sistema a 1 permite que el usuario suprima campañas vicidial del sistema|Διαγράψτε τις εκστρατείες -</B> αυτή η επιλογή εάν θέστε 1 επιτρέπει στο χρήστη για να διαγράψει τις vicidial εκστρατείες από το σύστημα||
Delete In-Groups -<\/B> This option if set to 1 allows the user to delete vicidial In-Groups from the system|En-Grupos de la cancelación -</B> esta opción si el sistema a 1 permite que el usuario suprima a En-Grupos vicidial del sistema|Διαγράψτε τις-ΟΜΑΔΕΣ -</B> αυτή η επιλογή εάν θέστε 1 επιτρέπει στο χρήστη για να διαγράψει τις vicidial-OMA'DES από το σύστημα||
Delete Remote Agents -<\/B> This option if set to 1 allows the user to delete vicidial remote agents from the system|Suprima los agentes alejados -</B> esta opción si el sistema a 1 permite que el usuario suprima agentes alejados vicidial del sistema|Διαγράψτε τους μακρινούς πράκτορες -</B> αυτή η επιλογή εάν θέστε 1 επιτρέπει στο χρήστη για να διαγράψει τους vicidial μακρινούς πράκτορες από το σύστημα||
Load Leads -<\/B> This option if set to 1 allows the user to load vicidial leads into the vicidial_list table by way of the web based lead loader|La carga conduce -</B> esta opción si el sistema a 1 permite que el usuario cargue los plomos vicidial en la tabla del vicidial_list por el cargador basado tela del plomo|Το φορτίο οδηγεί -</B> αυτή η επιλογή εάν θέστε 1 επιτρέπει στο χρήστη για να φορτώσει τους vicidial μολύβδους στον πίνακα vicidial_list μέσω του βασισμένου στον Ιστό φορτωτή μολύβδου||
Campaign Detail -<\/B> This option if set to 1 allows the user to view and modify the campaign detail screen elements|Detalle de la campaña -</B> esta opción si el sistema a 1 permite que el usuario visión y modifique los elementos de la pantalla del detalle de la campaña|Λεπτομέρεια εκστρατείας -</B> αυτή η επιλογή εάν θέστε 1 επιτρέπει στο χρήστη για να δει και να τροποποιήσει τα στοιχεία οθόνης λεπτομέρειας εκστρατείας||
AGC Admin Access -<\/B> This option if set to 1 allows the user to login to the astGUIclient admin pages|Acceso de AGC Admin -</B> esta opción si el sistema a 1 permite a usuario a la conexión a las páginas astGUIclient del admin|Πρόσβαση AGC Admin -</B> αυτή η επιλογή εάν θέστε 1 επιτρέπει στο χρήστη στη σύνδεση στις σελίδες admin astGUIclient||
AGC Delete Phones -<\/B> This option if set to 1 allows the user to delete phone entries in the astGUIclient admin pages|La cancelación de AGC telefona -</B> esta opción si el sistema a 1 permite que el usuario suprima entradas del teléfono en las páginas astGUIclient del admin|Το AGC διαγράφει τα τηλέφωνα -</B> αυτή η επιλογή εάν θέστε 1 επιτρέπει στο χρήστη για να διαγράψει τα τηλεφωνικά λήμματα στις σελίδες admin astGUIclient||
Delete Scripts -<\/B> This option if set to 1 allows the user to delete Campaign scripts in the script modification screen|Escrituras de la cancelación -</B> esta opción si el sistema a 1 permite que el usuario suprima las escrituras de la campaña en la pantalla de la modificación de la escritura|Διαγράψτε τα χειρόγραφα -</B> αυτή η επιλογή εάν θέστε 1 επιτρέπει στο χρήστη για να διαγράψει τα χειρόγραφα εκστρατείας στην οθόνη τροποποίησης χειρογράφων||
Script ID -<\/B> This is the short name of a Vicidial Script. This needs to be a unique identifier. Try not to use any spaces or punctuation for this field. max 10 characters, minimum of 2 characters|Identificación de la escritura -</B> Éste es el nombre corto de una escritura de Vicidial. Éste necesita ser un identificador único. Intente no utilizar ningunos espacios o puntuación para los caracteres de este máximo 10 del campo, mínimo de 2 caracteres|Ταυτότητα χειρογράφων -</B> αυτό είναι το σύντομο όνομα ενός χειρογράφου Vicidial. Αυτό πρέπει να είναι ένα μοναδικό προσδιοριστικό. Προσπαθήστε να μην χρησιμοποιήσετε οποιαδήποτε διαστήματα ή στίξη για ανώτατους 10 χαρακτήρες αυτών των τομέων, ελάχιστο 2 χαρακτήρων||
Script Name -<\/B> This is the title of a Vicidial Script. This is a short summary of the script. max 50 characters, minimum of 2 characters. There should be no spaces or punctuation of any kind in theis field|Nombre de la escritura -</B> éste es el título de una escritura de Vicidial. Éste es un resumen corto de los caracteres del máximo 50 de la escritura, mínimo de 2 caracteres. No debe haber espacios o puntuación de la clase en campo de los theis|Όνομα χειρογράφων -</B> αυτό είναι ο τίτλος ενός χειρογράφου Vicidial. Αυτό είναι μια σύντομη περίληψη των ανώτατων 50 χαρακτήρων χειρογράφων, ελάχιστο 2 χαρακτήρων. Δεν πρέπει να υπάρξουν καμία διάστημα ή στίξη οποιουδήποτε είδους στον τομέα theis||
Script Comments -<\/B> This is where you can place comments for a Vicidial Script such as -changed to free upgrade on Sept 23-. max 255 characters, minimum of 2 characters|Comentarios de la escritura -</B> éste es tal como donde usted puede poner los comentarios para una escritura de Vicidial - cambiantes para liberar mejora de sept. el 23 -. caracteres del máximo 255, mínimo de 2 caracteres|Τα σχόλια χειρογράφων -</B> αυτό είναι όπου μπορείτε να τοποθετήσετε τα σχόλια για ένα χειρόγραφο Vicidial όπως - άλλαξαν στην ελεύθερη βελτίωση στις 23 του Σεπτεμβρίου -. ανώτατοι 255 χαρακτήρες, ελάχιστο 2 χαρακτήρων||
Script Text -<\/B> This is where you place the content of a Vicidial Script. Minimum of 2 characters. You can have customer information be auto-populated in this script using --A--field--B-- where field is one of the following fieldnames: vendor_lead_code, source_id, list_id, gmt_offset_now, called_since_last_reset, phone_code, 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. For example, this sentence would print the persons name in it----<BR><BR> Hello, can I speak with --A--first_name--B-- --A--last_name--B-- please? Well hello --A--title--B-- --A--last_name--B-- how are you today?<BR><BR> This would read----<BR><BR>Hello, can I speak with John Doe please? Well hello Mr. Doe how are you today?|Texto de la escritura -</B> aquí es adonde usted pone el contenido de una escritura de Vicidial. Mínimo de 2 caracteres. Usted puede hacer la información del cliente automo'vil-poblar en esta escritura usando "--A--campo--B--" donde está uno el campo de los fieldnames siguientes: vendor_lead_code, source_id, list_id, gmt_offset_now, called_since_last_reset, phone_code, 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. ¿Por ejemplo, esta oración imprimiría el nombre de las personas en él hola, puedo hablar con --A--first_name--B-- --A--last_name--B-- por favor? ¿Título del pozo hola --A--title--B-- --A--last_name--B-- cómo está usted hoy? Esto leería ¿Hola, puedo hablar Juan Doe por favor? ¿Sr. Doe del pozo hola cómo está usted hoy?|Κείμενο χειρογράφων -</B> αυτό είναι όπου τοποθετείτε το περιεχόμενο ενός χειρογράφου Vicidial. Ελάχιστο 2 χαρακτήρων. Μπορείτε να έχετε τις πληροφορίες πελατών να αυτόματος-εποικηθούν σε αυτό το χειρόγραφο χρησιμοποιώντας "--A--τομέας--B-- όπου ο τομέας είναι ένα από τα ακόλουθα fieldnames: vendor_lead_code, source_id, list_id, gmt_offset_now, called_since_last_reset, phone_code, 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. Παραδείγματος χάριν, αυτή η πρόταση θα τύπωνε το όνομα προσώπων σε το γειάσου, μπορώ να μιλήσω με --A--first_name--B-- --A--last_name--B-- παρακαλώ; Καλά γειάσου --Α--title--B-- --Α--last_name--B-- πώς είναι εσείς σήμερα; Αυτό θα διάβαζε γειάσου, μπορώ να μιλήσω με John Doe παρακαλώ; Καλά γειάσου ο κ. Doe πώς είστε σήμερα;||
Active -<\/B> This determines whether this script can be selected to be used by a campaign|Activo -</B> esto se determina si esta escritura se puede seleccionar para ser utilizado por una campaña|Ενεργός - αυτό καθορίζει εάν αυτό το χειρόγραφο μπορεί να επιλεχτεί για να χρησιμοποιηθεί από μια εκστρατεία||
Campaign ID -<\/B> This is the short name of the campaign, it is not editable after initial submission, cannot contain spaces and must be between 2 and 8 characters in lengt|Identificación de la campaña -</B> Úste es el nombre corto de la campaña, él no es editable después de la sumisión inicial, no puede contener espacios y debe estar entre 2 y 8 caracteres en longitud|ID Εκστρατείας -</B> Αυτό είναι το σύντομο όνομα της εκστρατείας, δεν μπορεί ν διορθωθεί μετά από την αρχική παράδοση, δεν μπορεί να περιέχει κενά και πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες||
Campaign Name -<\/B> This is the description of the campaign, it must be between 6 and 40 characters in length|Nombre de la campaña -</B> Ésta es la descripción de la campaña, debe estar entre 6 y 40 caracteres en longitud|Ονομα Εκστρατείας -</B> Αυτό είναι η περιγραφή της εκστρατείας, πρέπει να είναι μεταξύ 6 και 40 χαρακτήρες||
Active -<\/B> This is where you set the campaign to Active or Inactive. If Inactive, noone can log into it|Activo -</B> aquí es adonde usted fija la campaña a activo o a inactivo. Si es inactivo, noone puede registrar en él|Ενεργοποίηση -</B> Εδώ μπορείτε να θέσετε την εκστρατεία ενεργή ή μη ενεργή. Εάν είναι μη ενεργή, κανένας δεν μπορεί να συνδεθεί σε αυτήν||
Park Extension -<\/B> This is where you can customize the on-hold music for VICIDIAL. Make sure the extension is in place in the extensions.conf and that it points to the filename below|Extensión del parque -</B> aquí es donde usted puede modificar para requisitos particulares en-sostiene la música para VICIDIAL. Cerciórese de que la extensión esté en lugar en el extensions.conf y eso que señala al nombre de fichero abajo|Τηλ.Σύνδεση Στάθμευσης -</B> Εδώ μπορείτε να προσετε την μουσική αναμονής για το VICIDIAL. Επιβεβαιώστε, ότι η εσωτ.σύνδεση βρίσκεται στο extensions.conf και ότι δείχνει το αρχείο παρακάτω||
Park File Name -<\/B> This is where you can customize the on-hold music for VICIDIAL. Make sure the filename is 10 characters in length or less and that the file is in place in the /var/lib/asterisk/sounds directory|Nombre del archivo del parque -</B> aquí es donde usted puede modificar para requisitos particulares en-sostiene la música para VICIDIAL. Cerciórese de que el nombre de fichero sea 10 caracteres en longitud o menos y que el archivo está en lugar en el directorio de /var/lib/asterisk/sounds|Ον Αρχείου Στάθμευσης -</B> Εδώ μπορείτε να προσαρμόσετε την μουσική αναμονής για το VICIDIAL. Επιβεβαιώστε ότι το αρχείο έχει 10 χαρακτήρες ή λιγότερους και ότι το αρχείο βρίσκεται στον κατάλογο /var/lib/asterisk/sounds||
Web Form -<\/B> This is where you can set the custom web page that will be opened when the user clicks on the WEB FORM button|Forma del Web -</B> aquí es donde usted puede fijar el Web page de encargo que será abierto cuando el usuario chasca encendido el botón de la FORMA del WEB|Ιστοσελίδα -</B> Αυτή είναι η προσαρμοσμένη διεύθυνση που θα σας κατευθύνει για κλήσεις που έρχονται σε αυτήν την ομάδα||
Allow Closers -<\/B> This is where you can set whether the users of this campaign will have the option to send the call to a closer|Permita Closers -</B> aquí es donde usted puede fijar si los usuarios de esta campaña tendrán la opción para enviar la llamada a un más cercano|Επιτρέπει τους Closers -</B> Εδώ ορίζετε εάν οι χρήστες της εκστρατείας θα έχουν την επιλογή να στείλουν την κλήση σε έναν closer||
Dial Status -<\/B> This is where you set the statuses that you are wanting to dial on within the lists that are active for the campaign below|Estado del dial -</B> aquí es adonde usted fija los estados que usted está deseando marcar encendido dentro de las listas que son activas para la campaña abajo|Κατάσταση Κλήσης -</B> Εδώ ορίζετε τις καταστάσεις που θέλετε να κληθούν μέσα στις λίστες, οι οποίες είναι ενεργές γ τις εκστρατείες παρακάτω||
List Order -</B> This menu is where you select how the leads that match the statuses selected above will be put in the lead hopper|Orden de la lista -</B> Este menú es donde usted selecciona cómo los plomos que emparejan los estados seleccionados arriba serán puestos en la tolva del plomo|Ταξινόμηση Λίστας -</B> Σε αυτόν τον κατάλογο επιλογών μπορείτε να επιλέξετε πώς οι καθοδηγητές, που ταιριάζουν με τις καταστάσεις που επιλέξατε παραπάνω, θα τοποθετηθούν hopper καθοδηγητών||
select the first leads loaded into the vicidial_list table|seleccione los primeros plomos cargados en la tabla del vicidial_list|επιλογή των πρώτων καθοδηγητών που φορτώθηκαν στον πίνακα vicidial_list||
select the last leads loaded into the vicidial_list table|seleccione los plomos pasados cargados en la tabla del vicidial_list|επιλογή των τελευταίων καθοδηγητών που φορτώθηκαν στον πίνακα vicidial_list||
select the highest phone number and works its way down|seleccione el número y los trabajos más altos de teléfono su manera abajo|επιλογή του υψηλότερου τηλεφωνικού αριθμού και συνεχίζει προς τα κάτω||
select the lowest phone number and works its way up|seleccione el número y los trabajos más bajos de teléfono su manera para arriba|επιλογή του χαμηλότερου τηλεφωνικού αριθμού και συνεχίζει προς τα πάνω||
starts with last names starting with Z and works its way down|comienzo con los nombres pasados comenzando con Z y trabajos su manera abajo|έναρξη με τα επίθετα να ξεκινάνε με Ζ και συνεχίζει προς τα κάτω||
starts with last names starting with A and works its way up|comienzo con los nombres pasados comenzando con A y trabajos su manera para arriba|έναρξη με τα επίθετα να ξεκινάνε με Α και συνεχίζει προς τα πάνω||
starts with most called leads and works its way down|comienzo con los plomos y los trabajos llamados su manera abajo|έναρξη με τους λιγότερους σε κλήση καθοδηγητές και συνεχίζει προς τα κάτω||
starts with least called leads and works its way up inserting a NEW lead in every other lead - Must NOT have NEW selected in the dial statuses|comienzo con menos plomos y trabajos llamados su manera para arriba que inserta un NEW plomo en cada otro lead(Must para no tener NEW seleccionado en los estados del dial)|έναρξη με τους λιγότερους σε κλήση καθοδηγητές και συνεχίζει προς τα πάνω με την εισαγωγή ενός ΝΕΟΥ καθοδηγητή για κάθε άλλο καθοδηγητή - Πρέπει να ΜΗΝ έχει νέα επιλεγμένα στις καταστάσεις κλήσεων||
starts with least called leads and works its way up inserting a NEW lead in every third lead - Must NOT have NEW selected in the dial statuses|comienzo con menos plomos y trabajos llamados su manera para arriba que inserta un NEW plomo en cada tercer lead(Must para no tener NEW seleccionado en los estados del dial)|έναρξη με τους λιγότερους σε κλήση καθοδηγητές και συνεχίζει προς τα πάνω με την εισαγωγή ενός ΝΕΟΥ καθοδηγητή για κάθε τρίτο καθοδηγητή - Πρέπει να ΜΗΝ έχει νέα επιλεγμένα στις καταστάσεις κλήσεων||
starts with least called leads and works its way up inserting a NEW lead in every forth lead - Must NOT have NEW selected in the dial statuses|comienzo con menos plomos y trabajos llamados que su manera para arriba que inserta un NEW plomo en cada adelante conduzca (no debe tener NEW seleccionado en los estados del dial)|έναρξη με τους λιγότερους σε κλήση καθοδηγητές και συνεχίζει προς τα πάνω με την εισαγωγή ενός ΝΕΟΥ καθοδηγητή για κάθε τέταρτο καθοδηγητή - Πρέπει να ΜΗΝ έχει νέα επιλεγμένα στις καταστάσεις κλήσεων||
starts with least called leads and works its way up|comienzo con menos plomos y trabajos llamados su manera para arriba|έναρξη με τους λιγότερους σε κλήση καθοδηγητές και συνεχίζει||
Hopper Level -<\/B> This is how many leads the VDhopper script tries to keep in the vicidial_hopper table for this campaign. If running VDhopper script every minute, make this slightly greater than the number of leads you go through in a minute|Tolva llana -</B> éste es cuántos conducen los intentos de la escritura de VDhopper para mantener la tabla del vicidial_hopper para esta campaña. Si funciona la escritura de VDhopper cada minuto, haga esto levemente mayor que el número de plomos que usted entra a través en un minuto|Επίπεδο Hopper -</B> Αυτό είναι το πόσους καθοδηγητές η διαδικασία VDhopper, προσπαθεί να διατηρήσει στον πίνακα vicidial_hopper για αυτήν την εκστρατεία. Εάν η διαδικασία VDhopper τρέχει κάθε λεπτό, ρυθμίστε αυτό λίγο περισσότερο από τον αριθμό των καθοδηγητών που περνούν σε ένα λεπτό||
Force Reset of Hopper -<\/B> This allows you to wipe out the hopper contents upon form submission. It should be filled again when the VDhopper script runs|Reajuste de la fuerza de la tolva -</B> esto permite que usted limpie fuera del contenido de la tolva sobre la sumisión de la forma. Debe ser llenada otra vez cuando la escritura de VDhopper funciona|Υποχρεωτική Επαναφορά του Hopper -</B> Αυτό σας επιτρέπει καθαρίσετε τα περιεχόμενα κατά επιβεβαίωση της φόρμας. Αυτό θα συμβεί πάλι όταν η διαδικασία VDhopper θα τρέξει||
Auto Dial Level -<\/B> This is where you set how many lines VICIDIAL should use per active agent. zero 0 means auto dialing is off and the agents will click to dial each number. Otherwise VICIDIAL will keep dialing lines equal to active agents multiplied by the dial level to arrive at how many lines this campaign on each server should allow|Nivel auto del dial -</B> aquí es adonde usted fija cuántos alinea VICIDIAL debe utilizar por medios del agente activo cero 0 que el marcar del automóvil está apagado y los agentes chascarán para marcar cada número. Si no VICIDIAL mantendrá líneas que marcan iguales a los agentes activos multiplicados por el nivel del dial para llegar cuántas líneas debe permitir esta campaña en cada servidor|Επίπεδο Αυτόματης Κλήσης -</B> Εδώ είναι που καθορίζεται πόσες γραμμές θα χρησιμοποιούνται ανά ενεργό χρήστη. Μηδέν (0) σημαίνει ότι η αυτόματη κλήση είναι μη ενεργή και οι χρήστες πατούν το πλήκτρο για την κλήση κάθε αριθμού. Διαφορετικά, το σύστημα καλεί γραμμές ίσες με τους ενεργούς χρήστες, πολλαπλασιασμένους με το επίπεδο κλήσης και σύμφωνα με το πόσες γραμμές η εκστρατεία σε κάθε διακομιστή επιτρέπει||
Next Agent Call -<\/B> This determines which agent receives the next call that is available|Llamada siguiente del agente -</B> esto se determina qué agente recibe la llamada siguiente que está disponible|Επόμενη Κλήση Χρήστη -</B> Αυτό προσδιορίζει ποιος χρήστης λαμβάνει την επόμενη κλήση που είναι διαθέσιμη||
orders by the random update value in the vicidial_live_agents table|órdenes por el valor al azar de la actualización en la tabla de los vicidial_live_agents|ταξινομημένο με τυχαία τιμή ενημέρωσης στον πίνακα vicidial_live_agents||
orders by the last time an agent was sent a call. Results in agents receiving about the same number of calls overall|las órdenes por la vez última un agente fueron enviadas una llamada. Resultados en los agentes que reciben el número casi igual de llamadas cabalmente|ταξινομημένο με την τελευταία φορά που σε ένα χρήστη στάλθηκε μία κλήση. Με αποτέλεσμα, ο χρήστης να λαμβάνει συνολικά το ίδιο αριθμό κλήσεων||
orders by the last time an agent finished a call. AKA agent waiting longest receives first call|las órdenes por la vez última un agente acabaron una llamada. El agente de AKA que espera lo más de largo posible recibe la primera llamada|ταξινομημένο με την τελευταία φορά που ένας χρήστης τελείωσε μία κλήση. Ο χρήστης που περιμένει περισσότερο λαμβάνει την πρώτη κλήση||
Local Call Time -<\/B> This is where you set during which hours you would like to dial, as determined by the local time in the are in which you are calling. This is controlled by area code and is adjusted for Daylight Savings time if applicable. General Guidelines in the USA for Business to Business is 9am to 5pm and Business to Consumer calls is 9am to 9pm|Tiempo de la llamada local -</B> aquí es adonde usted fijó durante qué horas usted quisiera marcar, según lo determinado por el tiempo local en está en cuál usted está llamando. Esto es controlada por código de área y ajustada por tiempo de los ahorros de la luz del día si es aplicable. Las pautas generales en los E.E.U.U. para el negocio al negocio son los 9am a los 5pm y el negocio a las llamadas del consumidor es los 9am a los 9pm|Τοπική Ωρα Κλήσης -</B> Εδώ, μπορείτε να ορίσετε τις ώρες που θα θέλατε να γίνουν οι κλήσεις. Αυτό ελέγχετε από τον κωδικό περις και ρυθμίζεται για Daylight Savings εάν είναι εφαρμόσιμο||
Voicemail -<\/B> If defined, calls that would normally DROP would instead be directed to this voicemail box to hear and leave a message|Voicemail -</B> si estuvieron definidas, las llamadas que CAERÍAN normalmente en lugar de otro serían ordenadas a esta caja del voicemail para oír y para dejar un mensaje|Φωνητικό Ταχυδρομείο -</B> Εάν έχει οριστεί, οι κλήσεις που φυσιολογικά θα γινόντουσαν DROP, θα κατευθυνθούν σε αυτό το φωνητικό ταχυδρομείο, ώστε να ακούσετε και να αφήσετε ένα μήνυμα||
Dial Timeout -<\/B> If defined, calls that would normally hangup after the timeout defined in extensions.conf would instead timeout at this amount of seconds if it is less than the extensions.conf timeout. This allows for quickly changing dial timeouts from server to server and limiting the effects to a single campaign. If you are having a lot of Answering Machine or Voicemail calls you may want to try changing this value to between 21-26 and see if results improve|Descanso del dial -</B> si está definido, llamadas que normalmente retraso después de que el descanso definido en extensions.conf en lugar de otro descanso en esta cantidad de segundos si es menos que el descanso de extensions.conf. Esto permite descansos del dial rápidamente que cambian del servidor al servidor y a limitar los efectos a una sola campaña. Si usted está teniendo muchos de llamadas del contestador automático o de Voicemail usted puede desear intentar cambiar este valor entre a 21-26 y ver si los resultados mejoran|Κλήση Εκτός Χρόνου -</B> Εάν έχει οριστεί, οι κλήσεις που φυσιολογικά θα έκλειναν μετά το χρόνο που έχει οριστεί στο extensions.conf, θα κλείσουν σε αυτόν τον χρόνο εάν είναι μικρότερος του extensions.conf. Αυτό επιτρέπει στην γρήγορη αλλαγή των χρόνων από διακομιστή σε διακομιστή και περιορίζοντας τα αποτελέσματα σε μία εκστρατεία. Εάν έχετε πολλές κλήσεις με Αυτόματους Τηλεφωνητές ή Φωνητικών Ταχυδρομείων, μπορείτε να αλλάξετε αυτή την τιμή μεταξύ 21-26 και να δείτε αν τα αποτελέσματα είναι καλύτερα||
Dial Prefix -<\/B> This field allows for more easily changing a path of dialing to go out through a different method without doing a reload in Asterisk. Default is 9 based upon a 91NXXNXXXXXX in the dialplan - extensions.conf|Prefijo del dial -</B> este campo permite más fácilmente cambiar una trayectoria de marcar a salir con un diverso método sin hacer una recarga en asterisco. El defecto es 9 basados sobre un 91NXXNXXXXXX en el dialplan - extensions.conf|Πρόθεμα Κλήσης -</B> Αυτό το ο επιτρέπει την πιο εύκολη αλλαγή της διαδρομής της κλήσης να βγει έξω μέσω διαφορετικής μεθόδου, χωρίς να γίνει επαναφόρτωση στο Asterisk. Προκαθορισμένο είναι το 9 βασισμένο σύμφωνα με το 91NXXNXXXXXX στο σχέδιο κλήσεων - extensions.conf||
Campaign CallerID -<\/B> This field allows for the sending of a custom callerid number on the outbound calls. This is the number that would show up on the callerid of the person you are calling. The default is UNKNOWN. This option is only available if you are using PRIs - ISDN T1s or E1s - that have the custom callerid feature turned on. This feature may also work with IAX2 trunks depending on what your provider allows. The custom callerID only applies to calls placed for the VICIDIAL campaign directly, any 3rd party calls or transfers will not send the custom callerID. NOTE: Sometimes putting UNKNOWN or PRIVATE in the field will yield the sending of your default callerID number by your carrier with the calls. You may want to test this and put 0000000000 in the callerid field instead if you do not want to send you CallerID|Campaña CallerID -</B> este campo permite enviar de un número de encargo del callerid en las llamadas de salida. Úste es el número que demostraría para arriba en el callerid de la persona que usted está llamando. El defecto es DESCONOCIDO. Esta opción está solamente disponible si usted está utilizando PRIs - ISDN T1 o E1 - que tienen la característica de encargo del callerid se giraron. Esta característica puede también trabajar con los troncos IAX2 dependiendo de lo que admite su abastecedor. El callerID de encargo se aplica solamente a las llamadas puestas para la campaña de VICIDIAL directamente, cualquier tercer persona llama o las transferencias no enviarán el callerID de encargo. NOTA: A veces el poner DESCONOCIDO o PRIVADO en el campo rendirá enviar de su número del callerID del defecto por su portador con las llamadas. Usted puede desear probar esto y poner 0000000000 en el campo del callerid en lugar de otro si usted no desea enviarle CallerID|CallerID Εκστρατείας -</B> Αυτό το πεδίο επιτρέπει την αποστολεί ενός προσαρμοσμένου callerid αριθμού στις εξερχόμενες κλήσεις. Αυτός είναι ο αριθμός που θα εμφανιστεί στο callerid του προσώπου που καλείται. Το προκαθορισμένο είναι ΑΓΝΩΣΤΟ. Αυτή η επιλογή είναι διαθέσιμη μόνο εάν χρησιμοποιείται PRIs - ISDN T1s ή E1s - που έχουν προσαρμοσμένο callerid χαρακτηριστικό ενεργοποιημένο. Αυτό το χαρακτηριστικό μπορεί να δουλεύει και με IAX2 trunks εξαρτώμενο με το τι επιτρέπει ο παροχέας. Το προσαρμοσμένο callerID εφαρμόζεται μόνο σε κλήσεις που τοποθετήθηκαν απευθείας για την εκστρατεία VICIDIAL, οποιαδήποτε κλήση με 3 μέρη ή μεταφορές δεν θα το στείλουν||
Campaign VDAD extension -<\/B> This field allows for a custom VDAD transfer extension. This allows you to use different VDADtransfer...agi scripts depending upon your campaign. The default transfer AGI - exten 8365 agi-VDADtransfer.agi - just immediately sends the calls on to agents as soon as they are picked up. An additional sample political survey AGI is also now included - 8366 agi-VDADtransferSURVEY.agi - that plays a message to the called person and allows them to make a choice by pressing buttons - effectively pre-screening the lead - . Please note that except for surveys, political calls and charities this form of calling is illegal in the United States|Extensión de la campaña VDAD -</B> este campo permite una extensión de la transferencia del costumbre VDAD. Esto permite que usted utilice diversas escrituras del agi de VDADtransfer... dependiendo de su campaña. La transferencia AGI(exten 8365 agi-VDADtransfer.agi del defecto) apenas envía inmediatamente invita a los agentes tan pronto como él se tome. Una encuesta sobre política AGI la muestra adicional es también (8366 agi-VDADtransferSURVEY.agi ) ese ahora incluido los juegos un mensaje a la persona llamada y permite que él haga una opción presionando buttons(effectively la pre-investigacio'n el plomo). Observe por favor eso a excepción de los exámenes, llamadas políticas y las caridades esta forma de llamar son ilegales en los Estados Unidos|Τηλ.Σύνδεση Εκστρατείας VDAD -</B> Αυτό το πεδίο επιτρέπει γι μία προσαρμόσιμη VDAD εσωτ.σύνδεση μεταφοράς. Αυτό σας επιτρέπει να χρησιμοποιήσετε διαφορετικές διαδικασίες VDADtransfer.agi, σύμφωνα με την εκστρατεία. Η προκαθορισμένη AGI μεταφορά - εσωτ.σύνδ. 8365 agi VDADtransfer.agi - στέλνει αμέσως τις κλήσεις στον χρήστη, μόλις το σηκώσουν. Ενα πρόσθετο AGI παράεα πολιτικής έρευνας συμπεριλαμβάνεται - 8366 agi - VDADtransferSURVEY.agi - όπου παίζει ένα μήνυμα στο κληθέν πρόσωπο και επιτρέπει να κάνουν επιλογές με τα πλήκτρα||
Campaign Rec extension -<\/B> This field allows for a custom recording extension to be used with VICIDIAL. This allows you to use different extensions depending upon how long you want to allow a maximum recording and what type of codec you want to record in. The default exten is 8309 which if you follow the SCRATCH_INSTALL examples will record in the WAV format for upto one hour. Another option included in the examples is 8310 which will record in GSM format for upto one hour|Extensión de Rec de la Campaña -</B> este campo permite para que una extensión de encargo de la grabación sea utilizada con VICIDIAL. Esto permite que usted utilice diversas extensiones dependiendo sobre cuánto tiempo usted desea permitir una grabación máxima y qué tipo de codec usted desea registrar adentro. El defecto exten es 8309 que si usted sigue los ejemplos de SCRATCH_INSTALL registrarán en el formato de WAV para hasta que una hora. Otra opción incluida en los ejemplos es 8310 que registrarán en el formato del GSM para hasta que una hora|Επέκταση εκστρατείας REC -</B> αυτός ο τομέας επιτρέπει μια επέκταση καταγραφής συνήθειας που χρησιμοποιείται με VICIDIAL. Αυτό επιτρέπει σε σας για να χρησιμοποιήσει τις διαφορετικές επεκτάσεις ανάλογα με πόσο καιρό πολύ θέλετε να επιτρέψετε μια μέγιστη καταγραφή και ποιος τύπος κωδικοποιητή-αποκωδικοποιητή εσείς θέλει να καταγράψει μέσα. Η προεπιλογή είναι 8309 για τα οποία εάν ακολουθήσετε τα παραδείγματα SCRATCH_INSTALL θα καταγράψουν με το σχήμα WAV μέχρι μια ώρα. Μια άλλη επιλογή που περιλαμβάνεται στα παραδείγματα είναι 8310 που θα καταγράψουν με το σχήμα GSM για μέχρι μια ώρα||
Campaign Recording -<\/B> This menu allows you to choose what level of recording is allowed on this campaign. NEVER will disable recording on the client. ONDEMAND is the default and allows the agent to start and stop recording as needed. ALLCALLS will start recording on the client whenever a call is sent to an agent|Grabación de la campaña -</B> este menú permite que usted elija qué nivel de la grabación se permite en esta campaña. NEVER inhabilitará la grabación en el cliente. ONDEMAND es el defecto y permite que el agente comience y pare a registrar según lo necesitado. ALLCALLS comenzará la grabación en el cliente siempre que una llamada se envíe a un agente|Καταγραφή εκστρατείας -</B> αυτές οι επιλογές επιτρέπουν σε σας για να επιλέξουν ποιο επίπεδο καταγραφής επιτρέπεται σε αυτήν την εκστρατεία. Δεν θα θέσει εκτός λειτουργίας ΠΟΤΕ την καταγραφή στον πελάτη. ONDEMAND είναι η προεπιλογή και επιτρέπει στον πράκτορα για να αρχίσει και να σταματήσει όπως απαιτείται. ALLCALLS θα αρχίσει την καταγραφή στον πελάτη όποτε μια κλήση στέλνεται σε έναν πράκτορα||
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. 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|Nombre de fichero de Rec de la campaña -</B> este campo permite que usted modifique el nombre para requisitos particulares de la grabación cuando la grabación de la campaña es ONDEMAND o ALLCALLS. Las variables permitidas son CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. El defecto es FULLDATE_AGENT y parecería este 20051020-103108_6666. Otro ejemplo es CAMPAIGN_TINYDATE_CUSTPHONE que parecería este TESTCAMP_51020103108_3125551212|Όνομα αρχείου εκστρατείας REC -</B> αυτός ο τομέας επιτρέπει σε σας για να προσαρμόσει το όνομα της καταγραφής όταν η καταγραφή εκστρατείας είναι ONDEMAND ή ALLCALLS. Οι μεταβλητές είναι ΠΡΑΚΤΟΡΑΣ EPOCH FULLDATE TINYDATE ΕΚΣΤΡΑΤΕΙΑΣ CUSTPHONE. Η προεπιλογή είναι FULLDATE_AGENT και θα εμοίαζε με αυτά τα 20051020-103108_6666. Ένα άλλο παράδειγμα είναι CAMPAIGN_TINYDATE_CUSTPHONE που θα εμοίαζε με αυτό το TESTCAMP_51020103108_3125551212||
Campaign Script -<\/B> This menu allows you to choose the script that will appear on the agents screen for this campaign. Select NONE to show no script for this campaign|Escritura de la campaña -</B> este menú permite que usted elija la escritura que aparecerá en la pantalla de los agentes para esta campaña. No seleccione NONE no demostrar ninguna escritura para esta campaña|Χειρόγραφο εκστρατείας -</B> αυτές οι επιλογές επιτρέπουν σε σας για να επιλέξουν το χειρόγραφο που θα εμφανιστεί στην οθόνη πρακτόρων για αυτήν την εκστρατεία. Μην επιλέξτε NONE για να μην παρουσιάσετε κανένα χειρόγραφο για αυτήν την εκστρατεία||
Get Call Launch -<\/B> This menu allows you to choose whether you want to auto-launch the web-form page in a separate window, auto-switch to the SCRIPT tab or do nothing when a call is sent to the agent for this campaign|Consiga el lanzamiento de la llamada -</B> este menú permite que usted elija si usted desee automo'vil-lance la página en una ventana separada, auto-switch de la tela-forma a la lengüeta de la ESCRITURA o no haga nada cuando una llamada se envía al agente para esta campaña|Πάρτε την έναρξη κλήσης -</B> αυτές οι επιλογές επιτρέπουν σε σας για να επιλέξουν εάν θέλετε την αυτόματος-έναρξη η σελίδα Ιστός-μορφής σε ένα χωριστό παράθυρο, αυτόματος-διακόπτης στην ετικέττα ΧΕΙΡΟΓΡΑΦΩΝ ή δεν κάνετε τίποτα όταν στέλνεται μια κλήση στον πράκτορα για αυτήν την εκστρατεία||
Answering Machine Message -<\/B> This field is for entering in an extension to blind transfer calls to when the agent gets an answering machine and clicks on the Answering Machine Message button in the transfer conference frame. You must set this exten up in the dialplan - extensions.conf - and make sure it plays an audio file then hangs up|Mensaje del contestador automático -</B> este campo está para entrar en una extensión para cegar llamadas de la transferencia a cuando el agente consigue un contestador automático y chasca encendido el botón del mensaje del contestador automático en el marco de la conferencia de la transferencia. Usted debe fijar esto exten para arriba en el dialplan - extensions.conf - y se cerciora de que juega un archivo audio después que cuelga para arriba|Μήνυμα αυτόματων τηλεφωνητών -</B> αυτός ο τομέας είναι για την είσοδο σε μια επέκταση στις τυφλές κλήσεις μεταφοράς όταν παίρνει ο πράκτορας έναν αυτόματο τηλεφωνητή και χτυπά στο κουμπί μηνυμάτων αυτόματων τηλεφωνητών στο πλαίσιο διασκέψεων μεταφοράς. Πρέπει να θέσετε αυτό επάνω στον dialplan - extensions.conf - και σιγουρεύεστε ότι παίζει ένα ακουστικό αρχείο κατόπιν κλείνει το τηλέφωνο||
List ID -<\/B> This is the numerical name of the list, it is not editable after initial submission, must contain only numbers and must be between 2 and 8 characters in length|Identificación de la lista -</B> Úste es el nombre numérico de la lista, él no es editable después de la sumisión inicial, debe contener solamente números y debe estar entre 2 y 8 caracteres en longitud|ID Λίστας -</B> Αυτό είναι το αριθμητικό όνομα της λίστας, δεν μπορεί να διορθωθεί μετά από την αρχική παράδοση, πρέπει να περιέχει μόνο αριθμούς και πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες||
List Name -<\/B> This is the description of the list, it must be between 2 and 20 characters in length|Nombre de la lista -</B> Ésta es la descripción de la lista, debe estar entre 2 y 20 caracteres en longitud|Ονομα Λίστας -</B> Αυτή είναι η περιγραφή της λίστας, πρέπει να είναι μεταξύ 2 και 20 χαρακτήρες||
Campaign -<\/B> This is the campaign that this list belongs to. A list can only be dialed on a single campaign at one time|Campaña -</B> Ésta es la campaña que esta lista pertenece a. Una lista se puede marcar solamente en una sola campaña contemporáneamente|Εκστρατεία -</B> Αυτή είναι η εκστρατεία όπου ανήκει η λίστα. Μία λίστα μπορεί μόνο να κληθεί από μία εκστρατεία κάθε φορά||
Active -<\/B> This defines whether the list is to be dialed on or not|Activo -</B> esto define si la lista debe ser marcada encendido o no|Ενεργοποίηση -</B> Αυτό ορίζει κατά πόσον η λίστα πρόκειται να κληθεί ή όχι||
Reset Lead-Called-Status for this list -<\/B> This resets all leads in this list to N for \"not called since last reset\" and means that any lead can now be called if it is the right status as defined in the campaign screen|Reajuste el Conducir-Llamar-Estado para esta lista -</B> esto reajusta todos los plomos en esta lista a N para "no llamado puesto que reajuste pasado" y significa que cualquier plomo puede ahora ser llamado si es el estado derecho según lo definido en la pantalla de la campaña|Επαναφορά Κατάστασης-Κλήσης-Καθοδήγησης για την λίστα -</B> Αυτό επαναφέρει τις καθοδηγήσεις σε αυτή την λίστα στο Ν για \"μη κληθέντα από την τελευταία επαναφορά\" και σημαίνει ότι για οποιαδήποτε καθοδήγηση μπορεί να γίνει κλήση εάν είναι η σωστή κατάσταση, όπως ορίσθηκε στην οθόνη της εκστρατείας||
Group ID -<\/B> This is the short name of the inbound group, it is not editable after initial submission, must not contain any spaces and must be between 2 and 20 characters in length|Identificación de grupo -</B> Úste es el nombre corto del grupo de entrada, él no es editable después de la sumisión inicial, no debe contener cualquier espacio y debe estar entre 2 y 20 caracteres en longitud|ID Ομάδας -</B> Αυτό είναι το σύντομο όνομα της εισερχόμενης ομάδας, δεν μπορεί να διορθωθεί μετά από την αρχική παράδοση, δεν μπορεί να περιέχει κενά και πρέπει να είναι μεταξύ 2 και 20χαρακτήρες||
Group Name -<\/B> This is the description of the group, it must be between 2 and 30 characters in length. Cannot include dashes, plusses or spaces|Nombre de grupo -</B> Ésta es la descripción del grupo, debe estar entre 2 y 30 caracteres en longitud. No puede incluir rociadas -, plusses + o espacios|Ονομα Ομάδας -</B> Αυτή είναι η περιγραφή της ομάδας, πρέπει να είναι μεταξύ 2 και 30 χαρακτήρες. Δεν μπορεί να συμπεριλαμβάνει παύλες, συν ή κενά||
Group Color -<\/B> This is the color that displays in the VICIDIAL client app when a call comes in on this group. It must be between 2 and 7 characters long. If this is a hex color definition you must remember to put a # at the beginning of the string or VICIDIAL will not work properly|Color del grupo -</B> éste es el color que exhibe en el cliente app de VICIDIAL cuando una llamada viene adentro en este grupo. Debe estar entre 2 y 7 caracteres de largo. Si esto es una definición del color de la tuerca hexagonal usted debe recordar poner a # al principio de la secuencia o VICIDIAL no trabajará correctamente|Χρώμα Ομάδας -</B> Αυτό είναι το χρώμα που εμφανίζεται στην VICIDIAL εφαρμογή όταν η κλήση έρχεται σε αυτή την ομάδα. Πρέπει να είναι μεταξύ 2 και 7 χαρακτήρες. Εάν αυτό είναι ορισμένο ως hex , θα πρέπει να τοποθετήσετε ένα # στην αρχή του κειμένου ή το VICIDIAL δεν θα δουλεύει σωστά||
Active -<\/B> This determines whether this group show up in the selection box when a VICIDIAL agent logs in|Activo -</B> esto se determina si este grupo demuestra para arriba en la caja de la selección cuando un agente de VICIDIAL entra|Ενεργοποίηση -</B> Αυτό καθορίζει κατά πόσον αυτή η ομάδα εμφανίζεται στο κουτί επιλογής όταν ένας χρήστης συνδέεται||
Web Form -<\/B> This is the custom address that clicking on the WEB FORM button in VICIDIAL will take you to for calls that come in on this group|Forma del Web -</B> Ésta es la dirección de encargo que el chascar en el botón de la FORMA del WEB en VICIDIAL le llevará para las llamadas que vienen adentro en este grupo|Ιστοσελίδα -</B> Αυτή είναι η προσαρμοσμένη διεύθυνση που θα σας κατευθύνει για κλήσεις που έρχονται σε αυ την ομάδα||
Voicemail -<\/B> If defined, this is the Voicemail box that calls will go to instead of being dropped if no agents are available after the hold time is up|Voicemail -</B> si está definida, Ésta es la caja de Voicemail que las llamadas irán en vez a ser caído si no hay agentes disponibles después del tiempo de asimiento están para arriba|Φωνητικό Ταχυδρομείο -</B> Εάν ορίζεται, αυτό είναι το περιεχόμενο φωνητικού ταχυδρομείου όπου οι κλήσεις θα πηγαίνουν, αντί να γίνονται dropped εάν δεν υπάρχουν διαθέσιμοι χρήστες μετά τον χρόνο αναμονής||
Fronter Display -<\/B> This field determines whether the inbound VICIDIAL agent would have the fronter name - if there is one - displayed in the Status field when the call comes to the agent|Exhibición de Fronter -</B> este campo se determina si el agente de entrada de VICIDIAL tendría el name(if del fronter allí es uno) exhibido en el campo del estado cuando la llamada viene al agente|Οθόνη Μπροστινού -</B> Αυτό το πεδίο καθορίζει κατά πόσον στον VICIDIAL χόμενος χρήστης θα εμφανίζεται το όνομα του μπροστινού - εάν υπάρχει κάποιο - στο πεδίο κατάστασης όταν η κλήση έρχεται στον χρήστη||
User ID Start -<\/B> This is the starting User ID that is used when the remote agent entries are inserted into the system. If the Number of Lines is set higher than 1, this number is incremented by one until each line has an entry. Make sure you create a new VICIDIAL user account with a user level of 4 or great if you want them to be able to use the vdremote.php page for remote web access of this account|Comienzo de la identificación del usuario -</B> Ésta es la identificación del usuario que comienza se utiliza que cuando las entradas alejadas del agente se insertan en el sistema. Si el número de líneas se fija más altamente de 1, este número es incrementado por uno hasta que cada línea tiene una entrada. Se cerciora de usted crear una nueva cuenta del usuario de VICIDIAL con un nivel de usuario de 4 o grande si usted quisiera que pudieran utilizar la página de vdremote.php para el acceso alejado de la tela de esta cuenta|Αρχή ID Χρήστη -</B> Αυτό είναι η αρχή του ID Χρήστη που χρησιμοποιείται όταν οι καταχωρήσεις των απομακρυσμένων χρηστών παρεμβάλλονται στο σύστημα. Εάν ο αριθμός των γραμμών είναι μεγαλύτερος από 1, αυτός ο αριθμός αυξάνει κατά ένα μέχρι κάθε γραμμή να έχει μία καταχώρηση. Επιβεβαιώστε, ότι δημιουργήσατε ένα νέο VICIDIAL λογαριασμό η με επίπεδο χρήσης 4 ή μεγαλύτερο, εάν θέλετε να μπορεί να χρησιμοποιήσει την σελίδα vdremote για απομακρυσμένη πρόσβαση του λογαριασμού του||
Number of Lines -<\/B> This defines how many remote agent entries the system creates, and determines how many lines it thinks it can safely send to the number below|Número de líneas -</B> el define cuánto crea el agente alejado las entradas el sistema, y se determina cuántas líneas piensa que puede enviar con seguridad al número debajo|Αριθμός Γραμμών -</B> Αυτό ορίζει πόσες καταχωρήσεις απομακρυσμένων χρηστών το σύστημα δημιουρ, και καθορίζει πόσες γραμμές μπορεί με ασφάλεια να στείλει στον αριθμό παρακάτω||
Server IP -<\/B> A remote agent entry is only good for one specific server, here is where you select which server you want|IP del servidor -</B> Una entrada alejada del agente es solamente buena para un servidor específico, aquí es donde usted selecciona a que el servidor usted desea|IP Διακομιστή -</B> Μία καταχώρηση απομακρυσμένου χρήστη είναι μόνο καλό για ένα συγκεκριμένο διακομιστή, εδώ είναι που επιλέ τον διακομιστή που ανήκει||
External Extension -<\/B> This is the number that you want the calls forwarded to. Make sure that it is a full dialplan number and that if you need a 9 at the beginning you put it in here. Test by dialing this number from a phone on the system|Extensión externa -</B> éste es el número que usted desea las llamadas remitidas a. Cerciórese de que sea un número dialplan completo y que si usted necesita 9 al principio usted lo pone adentro aquí. Pruebe marcando este número de un teléfono en el sistema|Εξωτερική Τηλ.Σύνδεση -</B> Αυτός είναι ο αριθμός που θέλετε οι κλήσεις να προωθούνται. Επιβεβαιώστε ότι είναι ένας πλήρης αριθμός από το σχέδιο κλήσεων και εάν θέλετε ένα 9 στην αρχή το βάζετε εδώ. Κάντε μία δοκιμή καλώντας αυτόν τον αριθμό από ένα τηλέφωνο του συστήματος||
Status -<\/B> Here is where you turn the remote agent on and off. As soon as the agent is Active the system assumes that it can send calls to it. It may take up to 30 seconds once you change the status to Inactive to stop receiving calls|Estado -</B> aquí es donde usted da vuelta al agente alejado por intervalos. Tan pronto como el agente sea activo el sistema asume que puede enviarle llamadas. Puede tomar hasta 30 segundos una vez que usted cambie el estado a inactivo para parar el recibir de llamadas|Κατάσταση -</B> Εδώ μπορείτε να θέσετε τον απομακρυσμένο χρήστη σε ενεργό και μη ενεργό. Μόλις ο χρήστης γίνει ενεργός το σύστημα μπορεί να στείλει κλήσεις σε αυτόν. Μπορεί να διαρκέσει μέχρι 30 δευτερόλεπτα μετά την αλλαγή της κατάστασης σε μη ενεργός, ώστε να σταματήσει να δέχεται κς||
Campaign -<\/B> Here is where you select the campaign that these remote agents will be logged into. Inbound needs to use the CLOSER campaign and select the inbound campaigns below that you want to receive calls from|Campaña -</B> aquí es donde usted selecciona la campaña que estos agentes alejados serán registrados en. Necesidades de entrada de utilizar la campaña MÁS CERCANA y de seleccionar las campañas de entrada debajo de ésa que usted desea recibir llamadas de|Εκστρατεία -</B> Εδώ μπο να επιλέξετε την εκστρατεία όπου οι απομακρυσμένοι χρήστες θα συνδεθούν. Για εισερχόμενες πρέπει να χρησιμοποιηθεί η εκστρατεία CLOSER και επιλέξτε τις εισερχόμενες εκστρατείες παρακάτω, από που θέλετε να λαμβάνεται τις κλήσεις||
Inbound Groups -<\/B> Here is where you select the inbound groups you want to receive calls from if you have selected the CLOSER campaign|Grupos de entrada -</B> aquí es donde usted selecciona a grupos de entrada que usted desea recibir llamadas de si usted ha seleccionado la campaña MÁS CERCANA|Εισερχόμενες Ομάδες -</B> Εδώ μπορείτε να επιλέξετε τις εισερχόμενες ομάδες που θέλετε να λαμβάνουν τις κλήσεις , εάν έχετε επιλέξει την εκστρατεία CLOSER||
The lists within this campaign are listed here, whether they are active is denoted by the Y or N and you can go to the list screen by clicking on the list ID in the first column|Las listas dentro de esta campaña se enumeran aquí, si son activas son denotadas por la Y o N y usted pueden ir a la pantalla de la lista chascando en la identificación de la lista en la primera columna|Οι λίστες της εκστρατείας παρουσιάζονται εδώ, και εάν είναι ενεργές δηαι με Υ ή Ν και μπορείτε να πάτε στην οθόνη λίστας με το να πατήσετε στο ID λίστας, στην πρώτη στήλη||
Through the use of custom campaign statuses, you can have statuses that only exist for a specific campaign. The Status must be 1-8 characters in length, the description must be 2-30 characters in length and Selectable defines whether it shows up in VICIDIAL as a disposition|Con el uso de los estados de encargo de la campaña, usted puede tener estados que existan solamente para una campaña específica. El estado debe ser 1-8 caracteres en longitud, la descripción debe ser 2-30 caracteres en longitud y seleccionable define si demuestra para arriba en VICIDIAL como disposición|Με την χρήση προσαρμοσμένων καταστάσεων εκστρατείας, μπορείτε να έχετε καταστάσεις μόνο για συγκεκριμένες εκστρατείες. Η κατάσταση πρέπει να είναι 1-8 χαρακτήρες, η περιγραφή 2-30 χαρακτήρες και Επιλέξιμα καθορίζεται αν εμφανίζεται στο VICIDIAL ως τερματισμός||
Through the use of custom campaign hotkeys, agents that use the vicidial web-client can hangup and disposition calls just by pressing a single key on their keyboard|Con el uso de los hotkeys de encargo de la campaña, los agentes que utilizan el retraso vicidial de la lata del tela-cliente y la disposición llama apenas presionando una sola llave en su teclado|Με την χρήση προσαρμοσμένων κλειδιών εκστρατείας, οι χρήστες που χρησιμοποιούν την εφαρμογή vicidial μπορούν να κλείσουν και να τερματίσουν την κλήση, με ένα μόνο πάτημα πλήκτρου||
User Group -<\/B> This is the short name of a Vicidial User group, try not to use any spaces or punctuation for this field. max 20 characters, minimum of 2 characters|Grupo de usuario -</B> éste es el nombre corto de un grupo de usuario de Vicidial, intento para no utilizar ningunos espacios o puntuación para los caracteres de este máximo 20 del campo, mínimo de 2 caracteres|Ομάδα Χρήστη -</B> Αυτό είναι το σύντομο όνομα της Vicidial ομάδας χρήστη, προσπαθήστε να μην χρησιμοποιήσετε κενά ή στίξεις για αυτό το πεδίο. Από 2 μέχρι 20 χαρακτήρες||
Group Name -<\/B> This is the description of the vicidial user group max of 40 characters|Nombre de grupo -</B> Ésta es la descripción del máximo vicidial del grupo de usuario de 40 caracteres|Ονομα Ομάδας-</B> Αυτή είναι η περιγραφή της vicidial ομάδας χρήστη μέχρι 40 χαρακτήρες||
Xfer-Conf DTMF -<\/B> These four fields allow for you to have two sets of Transfer Conference and DTMF presets. When the call or campaign is loaded, the vicidial.php script will show two buttons on the transfer-conference frame and auto-populate the number-to-dial and the send-dtmf fields when pressed|Xfer-Conf DTMF -</B> Estos cuatro campos permiten para que usted tenga dos sistemas de conferencia de la transferencia y de precolocaciones de DTMF. Cuando se carga la llamada o la campaña, la escritura de vicidial.php demostrará dos botones en el marco de la transferir-conferencia y automo'vil-poblara' el nu'mero-a-dial y los campos del enviar-dtmf cuando está presionada|Ξφερ- Conf DTMF -</B> αυτοί οι τέσσερις τομείς επιτρέπουν σας να έχουν δύο σύνολα διάσκεψης μεταφοράς και DTMF προετοιμάζει. Όταν η κλήση ή η εκστρατεία φορτώνεται, το χειρόγραφο vicidial.php θα παρουσιάσει δύο κουμπιά στο πλαίσιο μεταφορά-διασκέψεων και αυτόματος-θα εποικήσει τον αριθμός-ΠΊΝΑΚΑ και στείλετε -στέλνω-δτμφ τους τομείς όταν πιέζεται||
AMD send to vm exten -<\/B> This menu allows you to define whether a message is left on an answering machine when it is detected. the call will be immediately forwarded to the Answering-Machine-Message extension if AMD is active and it is determined that the call is an answering machine|AMD envían a la VM exten -</B> este menú permite que usted defina si un mensaje esté dejado en un contestador automático cuando se detecta la llamada será remitido inmediatamente a la extensión del Contestar-Ma'quina-Mensaje si AMD es activo y se determina que la llamada es un contestador automático|AMD στέλνει στο VM -</B> αυτές οι επιλογές επιτρέπουν σε σας για να καθορίσουν εάν ένα μήνυμα αφήνεται σε έναν αυτόματο τηλεφωνητή όταν ανιχνεύεται ότι η κλήση θα διαβιβαστεί αμέσως στην επέκταση απαντώ-μηχανή-μηνυμάτων εάν AMD είναι ενεργό και καθορίζεται ότι η κλήση είναι ένας αυτόματος τηλεφωνητής||
Modify Leads -<\/B> This option if set to 1 allows the user to modify leads in the admin section lead search results page|Modifique los plomos -</B> esta opción si el sistema a 1 permite que el usuario modifique los plomos en la página de los resultados de la búsqueda del plomo de la sección del admin|Τροποποιήστε τους μολύβδους -</B> αυτή η επιλογή εάν θέστε 1 επιτρέπει στο χρήστη για να τροποποιήσει τους μολύβδους στη σελίδα αποτελεσμάτων αναζήτησης μολύβδου τμημάτων admin||
HotKeys Active -<\/B> This option if set to 1 allows the user to use the HotKeys quick-dispositioning function in|HotKeys activo -</B> esta opción si el sistema a 1 permite que el usuario utilice la función ra'pida-dispositioning de HotKeys adentro|HotKeys ενεργός -</B> αυτή η επιλογή εάν θέστε 1 επιτρέπει στο χρήστη για να χρησιμοποιήσει τη γρήγορος- dispositioning λειτουργία HotKeys μέσα||
Change Agent Campaign -<\/B> This option if set to 1 allows the user to alter the campaign that an agent is logged into while they are logged into it|Cambie la campaña del agente -</B> esta opción si el sistema a 1 permite que el usuario altere la campaña que un agente está registrado en mientras que se registran en él|Εκστρατεία πρακτόρων αλλαγής -</B> αυτή η επιλογή εάν θέστε 1 επιτρέπει στο χρήστη για να αλλάξει την εκστρατεία ότι ένας πράκτορας καταγράφεται ενώ καταγράφονται σε την||
Agent Choose Ingroups -<\/B> This option if set to 1 allows the user to choose the ingroups that they will receive calls from when they login to a CLOSER or INBOUND campaign. Otherwise the Manager will need to set this in their user detail screen of the admin page|El agente elige Ingroups -</B> esta opción si el sistema a 1 permite que el usuario elija los ingroups de los cuales recibirán llamadas cuando ellos conexión a una campaña MÁS CERCANA o DE ENTRADA. Si no el encargado necesitará fijar esto en su pantalla del detalle del usuario de la página del admin|Ο πράκτορας επιλέγει Ingroups -</B> αυτή η επιλογή εάν θέστε 1 επιτρέπει στο χρήστη για να επιλέξει τα ingroups ότι θα λάβουν τις κλήσεις από όταν αυτοί σύνδεση σε μια ΠΙΟ ΣΤΕΝΉ ή ΕΙΣΕΡΧΟΜΕΝΗ εκστρατεία. Διαφορετικά ο διευθυντής θα πρέπει να θέσει αυτό στην οθόνη λεπτομέρειας χρηστών τους της σελίδας admin||
Lead Filter -<\/B> This is a method of filtering your leads using a fragment of a SQL query. Use this feature with caution, it is easy to stop dialing accidentally with the slightest alteration to the SQL statement. Default is NONE|Filtro del plomo -</B> éste es un método de filtrar sus plomos usando un fragmento de una pregunta del SQL. Utilice esta característica con la precaución, él es fácil de parar el marcar accidentalmente con la alteración más leve a la declaración del SQL. El defecto no es NINGUNO|Φίλτρο μολύβδου -</B> αυτό είναι μια μέθοδος τους μολύβδους σας που χρησιμοποιούν ένα τεμάχιο μιας ερώτησης SQL. Χρησιμοποιήστε αυτό το χαρακτηριστικό γνώρισμα με την προσοχή, είναι εύκολο να σταματήσει τυχαία με τη μικρότερη αλλαγή στη δήλωση SQL. Η προεπιλογή δεν είναι ΚΑΜΙΑ||
Filter ID -<\/B> This is the short name of a Vicidial Lead Filter. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 10 characters, minimum of 2 characters|Identificación del filtro -</B> Éste es el nombre corto de un filtro del plomo de Vicidial. Éste necesita ser un identificador único. No utilice ningunos espacios o puntuación para los caracteres de este máximo 10 del campo, mínimo de 2 caracteres|Ταυτότητα φίλτρων -</B> αυτό είναι το σύντομο όνομα ενός φίλτρου μολύβδου Vicidial. Αυτό πρέπει να είναι ένα μοναδικό προσδιοριστικό. Μην χρησιμοποιήστε οποιαδήποτε διαστήματα ή στίξη για ανώτατους 10 χαρακτήρες αυτών των τομέων, ελάχιστο 2 χαρακτήρων||
Filter Name -<\/B> This is a more descriptive name of the Filter. This is a short summary of the filter. max 30 characters, minimum of 2 characters|Nombre del filtro -</B> éste es un nombre más descriptivo del filtro. Éste es un resumen corto de los caracteres del máximo 30 del filtro, mínimo de 2 caracteres|Όνομα φίλτρων -</B> αυτό είναι ένα περιγραφικότερο όνομα του φίλτρου. Αυτό είναι μια σύντομη περίληψη των ανώτατων 30 χαρακτήρων φίλτρων, ελάχιστο 2 χαρακτήρων||
Filter Comments -<\/B> This is where you can place comments for a Vicidial Filter such as -calls all California leads-. max 255 characters, minimum of 2 characters|El filtro comenta -</B> aquí es tal como donde usted puede poner los comentarios para un filtro de Vicidial - las llamadas todos los plomos de California -. los caracteres del máximo 255, mínimo de 2 caracteres|Σχόλια φίλτρων -</B> αυτό είναι όπου μπορείτε να τοποθετήσετε τα σχόλια για ένα φίλτρο Vicidial όπως - κλήσεις όλοι οι μόλυβδοι Καλιφόρνιας -. ανώτατοι 255 χαρακτήρες, ελάχιστο 2 χαρακτήρων||
Filter SQL -<\/B> This is where you place the SQL query fragment that you want to filter by. do not begin or end with an AND, that will be added by the hopper cron script automatically. an example SQL query that would work here is- called_count \> 4 and called_count \< 8 -|Filtro SQL -</B> Aquí es adonde usted pone el fragmento de la pregunta del SQL que usted desea filtrar cerca no comienza o el extremo con Y, eso será agregado por la escritura del cron de la tolva automáticamente. una pregunta del SQL del ejemplo que trabajaría aquí es el called_count 4 y called_count|Φίλτρο SQL -</B> αυτό είναι όπου τοποθετείτε το τεμάχιο ερώτησης SQL που θέλετε να φιλτραρίσετε κοντά δεν αρχίζετε ή δεν τελειώνετε με ΚΑΙ, το οποίο θα προστεθεί από το χειρόγραφο χοανών cron αυτόματα. μια ερώτηση παραδείγματος SQL που θα λειτουργούσε εδώ είναι - called_count 4 και called_count||
Agent Alt Num Dialing -<\/B> This option allows an agent to manually dial the alternate phone number or address3 field after the main number has been called|El marcar numérico del Alt del agente -</B> esta opción permite que un agente marque manualmente el número de teléfono o el campo alterno address3 después de que se haya llamado el número principal|Κλήση Εναλ Αρ Χρήστη -</B> αυτή η επιλογή επιτρέπει σε έναν πράκτορα για να σχηματίσει με το χέρι τον εναλλάσσομαι τηλεφωνικό αριθμό ή τον τομέα address3 αφότου έχει κληθεί ο κύριος αριθμός||
Scheduled Callbacks -<\/B> This option allows an agent to disposition a call as CALLBK and choose the data and time at which the lead will be re-activated|Servicios repetidos programar -</B> esta opción no prohibe a agente a la disposición una llamada como CALLBK y elige los datos y el tiempo en los cuales el plomo será reactivado|Σχέδισσες επανακλήσεις -</B> αυτή η επιλογή επιτρέπει σε έναν πράκτορα στη διάθεση μια κλήση ως CALLBK και επιλέγει τα στοιχεία και το χρόνο στους οποίους ο μόλυβδος θα επανενεργοποιηθεί||
Agent-Only Callbacks -<\/B> This option allows an agent to set a callback so that they are the only Agent that can call the customer back. This also allows the agent to see their callback listings and call them back any time they want to|Servicios repetidos del Agente-Solamente -</B> esta opción permite que un agente fije un servicio repetido de modo que sean el único agente que puede llamar la parte posteriora del cliente. Esto también permite que el agente vea sus listados del servicio repetido y los llame detrás cualquier momento desean a|Πράκτορας-μόνο επανακλήσεις -</B> αυτή η επιλογή επιτρέπει σε έναν πράκτορα για να θέσει μια επανάκληση έτσι ώστε είναι ο μόνος πράκτορας που μπορεί να καλέσει την πλάτη πελατών. Αυτό επιτρέπει επίσης στον πράκτορα για να δει τις λίστες επανάκλησής τους και να τις καλέσει πίσω οποτεδήποτε θέλουν||
Agent Call Manual -<\/B> This option allows an agent to manually enter a new lead into the system and call them. This also allows the calling of any phone number from their vicidial screen and puts that call into their session. Use this option with caution|Manual de la llamada del agente -</B> esta opción permite que un agente incorpore manualmente un nuevo plomo en el sistema y los llame. Esto también permite llamar de cualquier número de teléfono de su pantalla vicidial y pone esa llamada en su sesión. Utilice esta opción con la precaución|Εγχειρίδιο κλήσης πρακτόρων -</B> αυτή η επιλογή επιτρέπει σε έναν πράκτορα για να εισαγάγει με το χέρι έναν νέο μόλυβδο στο σύστημα και να τους καλέσει. Αυτό επιτρέπει επίσης την κλήση οποιουδήποτε τηλεφωνικού αριθμού από την vicidial οθόνη τους και βάζει ότι κλήση στη σύνοδό τους. Χρησιμοποιήστε αυτήν την επιλογή με την προσοχή||
Vicidial Recording -<\/B> This option can prevent an agent from doing any recordings after they log in to vicidial. This option must be on for vicidial to follow the campaign recording session|Grabación de Vicidial -</B> esta opción puede evitar que un agente haga cualquier grabación después de que se abran una sesión a vicidial. Esta opción debe estar encendido para que vicidial siga la sesión de la grabación de la campaña|Καταγραφή Vicidial -</B> αυτή η επιλογή μπορεί να αποτρέψει έναν πράκτορα από να κάνει οποιεσδήποτε καταγραφές αφότου συνδέονται σε vicidial. Αυτή η επιλογή πρέπει να είναι ανοικτή για vicidial να ακολουθηθεί η σύνοδος καταγραφής εκστρατείας||
Vicidial Transfers -<\/B> This option can prevent an agent from opening the transfer - conference session of vicidial. If this is disabled, the agent cannot third party call or blind transfer any calls|Vicidial transfiere -</B> esta opción puede evitar que un agente abra la transferencia - la sesión de la conferencia de vicidial. Si esto es lisiado, el agente no puede llamada de los terceros o la transferencia oculta cualquiera llama|Μεταφορές Vicidial -</B> αυτή η επιλογή μπορεί να αποτρέψει έναν πράκτορα από το άνοιγμα της μεταφοράς - σύνοδος διασκέψεων vicidial. Εάν αυτό είναι εκτός λειτουργίας, ο πράκτορας δεν μπορεί τρίτος να καλέσει ή τυφλή μεταφορά οποιεσδήποτε κλήσεις||
Delete Filters -<\/B> This option allows the user to be able to delete vicidial lead filters from the system|La cancelación se filtra -</B> esta opción permite que el usuario pueda suprimir los filtros vicidial del plomo del sistema|Διαγράψτε τα φίλτρα -</B> αυτή η επιλογή επιτρέπει στο χρήστη για να είναι σε θέση να διαγράψει τα vicidial φίλτρα μολύβδου από το σύστημα||
Alter Agent Interface Options -<\/B> This option if set to 1 allows the administrative user to modify the Agents interface options in admin.php|Altere las opciones de interfaz del agente -</B> esta opción si el sistema a 1 permite que el usuario administrativo modifique las opciones de interfaz de los agentes en admin.php|Αλλάξτε τις επιλογές διεπαφών πρακτόρων -</B> αυτή η επιλογή εάν θέστε 1 επιτρέπει στο διοικητικό χρήστη για να τροποποιήσει τις επιλογές διεπαφών πρακτόρων σε admin.php||
Closer Default Blended -<\/B> This option simply defaults the Blended checkbox on a CLOSER login screen|Un defecto más cercano mezclado -</B> esta opción omite simplemente el checkbox mezclado en una pantalla MÁS CERCANA de la conexión|Πιό στενή προεπιλογή που συνδυάζεται -</B> αυτή η επιλογή προκαθορίζει απλά το συνδυασμένο τετραγωνίδιο σε μια ΠΙΟ ΣΤΕΝΉ οθόνη σύνδεσης||
FILTER NOT ADDED - there is already a filter entry with this ID|FILTRO NO AGREGADO - hay ya una entrada del filtro con esta identificación|ΦΙΛΤΡΟ ΠΡΟΣΤΙΘΕΜΕΝΟ - υπάρχει ήδη μια είσοδος φίλτρων με αυτήν την ταυτότητα||
Filter ID, name and SQL must be at least 2 characters in length|Filtre la identificación, nombre y el SQL debe ser por lo menos 2 caracteres en longitud|Η ταυτότητα φίλτρων, το όνομα και το SQL πρέπει να είναι τουλάχιστον 2 χαρακτήρες στο μήκος||
Filter ID must be at least 2 characters in length|La identificación del filtro debe ser por lo menos 2 caracteres en longitud|Η ταυτότητα φίλτρων πρέπει να είναι τουλάχιστον 2 χαρακτήρες στο μήκος||
Please go back and look at the data you entered|Vaya por favor detrás y mire los datos que usted incorporó|Παρακαλώ επιστρέψτε και εξετάστε τα στοιχεία που εισαγάγατε||
CLICK HERE TO GO TO THE SUPER LEAD LOADER|CHASQUE AQUÍ PARA IR AL CARGADOR ESTUPENDO DEL PLOMO|ΧΤΥΠΗΣΤΕ ΕΔΩ ΓΙΑ ΝΑ ΠΑΤΕ ΣΤΟΝ ΕΞΟΧΟ ΦΟΡΤΩΤΗ ΜΟΛΥΒΔΟΥ||
BACK TO ADMIN|DE NUEVO AL ADMIN|ΠΙΣΩ ΣΤΗ ΔΙΟΙΚΗΣΗ||
File layout to use|Disposición de archivo a utilizar|Μορφή αρχείων στη χρήση||
Standard VICIDIAL|VICIDIAL Estándar|Τυποποιημένο VICIDIAL||
Custom layout|Disposición de encargo|Σχεδιάγραμμα συνήθειας||
CLICK HERE TO GO TO THE BASIC LEAD LOADER|CHASQUE AQUÍ PARA IR AL CARGADOR DEL PLOMO DEL BASIC|ΧΤΥΠΗΣΤΕ ΕΔΩ ΓΙΑ ΝΑ ΠΑΤΕ ΣΤΟ ΒΑΣΙΚΟ ΦΟΡΤΩΤΗ ΜΟΛΥΒΔΟΥ||
SUPER LIST LOADER|CARGADOR ESTUPENDO DE LA LISTA|ΕΞΟΧΟΣ ΦΟΡΤΩΤΗΣ ΚΑΤΑΛΟΓΩΝ||
OK TO PROCESS|ACEPTABLE PROCESAR|Ο.Κ. ΣΤΗ ΔΙΑΔΙΚΑΣΊΑ||
File data|Datos del archivo|Στοιχεία αρχείων||
short description of the filter|descripción corta del filtro|σύντομη περιγραφή του φίλτρου||
Alter Agent Interface Options: |Altere Las Opciones De Interfaz Del Agente: |Αλλάξτε τις επιλογές διεπαφών πρακτόρων: ||
Click here to delete filter |Chasque aquí para suprimir el filtro|Χτυπήστε εδώ για να διαγράψετε το φίλτρο||
FILTER DELETION COMPLETED:|CANCELADURA DEL FILTRO TERMINADA:|ΔΙΑΓΡΑΦΗ ΦΙΛΤΡΩΝ ΠΟΥ ΟΛΟΚΛΗΡΩΝΕΤΑΙ:||
ADMIN INTERFACE OPTIONS:|OPCIONES DE INTERFAZ DEL ADMIN:|ΕΠΙΛΟΓΈΣ ΔΙΕΠΑΦΏΝ ADMIN:||
AGENT INTERFACE OPTIONS:|OPCIONES DE INTERFAZ DEL AGENTE:|ΕΠΙΛΟΓΕΣ ΔΙΕΠΑΦΩΝ ΠΡΑΚΤΟΡΩΝ:||
Closer Default Blended:|Un Defecto Más cercano Mezclado:|Η πιό στενή προεπιλογή συνδύασε:||
Agent Alt Num Dialing:|El Marcar Numérico Del Alt Del Agente:|Κλήση Εναλ Αρ Χρήστη: ||
Scheduled Callbacks:|Servicios repetidos Programar:|Σχέδισσες επανακλήσεις:||
Agent-Only Callbacks:|Servicios repetidos Del Agente-Solamente:|Πράκτορας-μόνο επανακλήσεις:||
New Filter Addition|Nueva Adición Del Filtro|Νέα προσθήκη φίλτρων||
LEAD FILTER LISTINGS:|LISTADOS DEL FILTRO DEL PLOMO:|ΛΙΣΤΕΣ ΦΙΛΤΡΩΝ ΜΟΛΥΒΔΟΥ:||
FILTER NOT MODIFIED|FILTRO NO MODIFICADO|ΦΙΛΤΡΟ ΤΡΟΠΟΠΟΙΗΜΕΝΟ||
FILTER NOT DELETED|FILTRO NO SUPRIMIDO|ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ ΦΙΛΤΡΟ||
DELETE THIS FILTER|SUPRIMA ESTE FILTRO|ΔΙΑΓΡΑΨΤΕ ΑΥΤΟ ΤΟ ΦΙΛΤΡΟ||
FILTER NOT ADDED|FILTRO NO AGREGADO|ΦΙΛΤΡΟ ΠΡΟΣΤΙΘΕΜΕΝΟ||
Filter Comments: |Comentarios Del Filtro: |Το φίλτρο σχολιάζει: ||
FILTER MODIFIED|FILTRO MODIFICADO|ΦΙΛΤΡΟ ΤΡΟΠΟΠΟΙΗΜΕΝΟ||
MODIFY A FILTER|MODIFIQUE Un FILTRO|ΤΡΟΠΟΠΟΙΗΣΤΕ ένα ΦΙΛΤΡΟ||
ADD NEW FILTER|AGREGUE EL FILTRO NUEVO|Πρόσθεσε Νέο Φίλτρο||
Add New Filter|Agregue El Filtro Nuevo|Πρόσθεσε Νέο Φίλτρο||
Modify Filter|Modifique El Filtro|Τροποποιήστε το φίλτρο||
Delete Filter|Filtro De la Cancelación|Διαγράψτε το φίλτρο||
Filter Name: |Nombre Del Filtro:|Όνομα φίλτρων:||
FILTER ADDED:|EL FILTRO AGREGÓ:|ΤΟ ΦΙΛΤΡΟ ΠΡΟΣΘΕΣΕ:||
VIEW FILTERS|FILTROS DE LA VISIÓN|ΦΙΛΤΡΑ ΑΠΟΨΗΣ||
Lead Filter:|Filtro Del Plomo:|Φίλτρο μολύβδου:||
Filter SQL:|Filtro Sql:|Φίλτρο SQL:||
Users List|Lista De Usuarios|Οι χρήστες απαριθμούν||
Filter ID: |Identificación Del Filtro:|Ταυτότητα φίλτρων:||
Filters|Filtros|Φίλτρα||
Agent Call Manual|Manual de la llamada del agente|Εγχειρίδιο κλήσης πρακτόρων||
Vicidial Recording|Grabación de Vicidial|Καταγραφή Vicidial||
Vicidial Transfers|Vicidial transfiere|Μεταφορές Vicidial||
Click here for user time sheet|Chasque aquí para la hoja de tiempo del usuario|Χτυπήστε εδώ για το δελτίο παρουσίας χρηστών||
Click here for user status|Chasque aquí para el estado del usuario|Χτυπήστε εδώ για τη θέση χρηστών||
Click here for user CallBack Holds|Chasque aquí para los asimientos del servicio repetido del usuario|Χτυπήστε εδώ για την πλάτη κλήσης χρηστών κρατά||
Lead Filter|Filtro del plomo|Φίλτρο μολύβδου||
Click here to see all CallBack Holds in this campaign|Chasque aquí para ver todos los asimientos del servicio repetido en esta campaña|Χτυπήστε εδώ για να δείτε όλη την πλάτη κλήσης κρατά σε αυτήν την εκστρατεία||
STATUS NAME|NOMBRE DEL ESTADO|ΟΝΟΜΑ ΘΕΣΗΣ||
Script ID|Identificación De la Escritura:|Ταυτότητα χειρογράφων:||
Script Name|Nombre de la escritura|Όνομα χειρογράφων||
Script Comments|Comentarios de la escritura|Τα σχόλια χειρογράφων||
Script Text|Texto de la escritura|Κείμενο χειρογράφων||
ADD FILTER|AGREGUE EL FILTRO|ΠΡΟΣΘΕΣΤΕ ΤΟ ΦΙΛΤΡΟ||
overall_user_level: orders by the user_level of the agent as defined in the vicidial_users table a higher user_level will receive more calls|overall_user_level: las órdenes por el user_level del agente según lo definido en los vicidial_users tabulan un user_level más alto recibirán más llamadas|overall_user_level: οι διαταγές από το user_level του πράκτορα όπως καθορίζεται στα vicidial_users παρουσιάζουν ένα υψηλότερο user_level θα λάβουν περισσότερες κλήσεις||
VICIDIAL LIST LOADER FUNCTIONALITY|FUNCIONALIDAD DEL CARGADOR DE LA LISTA DE VICIDIAL|VICIDIAL ΛΕΙΤΟΥΡΓΙΑ ΦΟΡΤΩΣΗΣ ΛΙΣΤΑΣ||
The VICIDIAL basic web-based lead loader is designed simply to take a lead file - up to 8MB in size - that is either tab or pipe delimited and load it into the vicidial_list table. There is also a new beta version super lead loader that allows for field choosing and TXT- Plain Text, CSV- Comma Separated Values and XLS- Excel file formats. The lead loader does not do data validation or check for duplicates in itself or other lists, so that is something you need to do before you load the leads. Also, make sure that you have created the list that these leads are to be under so that you can use them. There is also the matter of time-zone-coding these leads. You may want to increase the frequency that the ADMIN_adjust_GMTnow_on_leads.pl is being run in the cron on your Asterisk server so that any loaded leads can be coded faster. Here is a list of the fields in their proper order for the lead files|El VICIDIAL tela-baso' cargador del plomo se diseña simplemente llevar un file(up del plomo 8MB de tamaño) que es lengüeta o pipa delimitada y cargarlo en la tabla del vicidial_list. Hay también un cargador estupendo nuevo del plomo de la versión beta que permite para el campo que elige y de TXT- el texto claramente, los valores separados coma de CSV- y XLS- sobresalen formatos del archivo. El cargador del plomo no hace la validación de datos o la comprobación para duplicados en sí mismo u otras listas, de modo que esté algo usted necesita hacer antes de usted la carga los plomos. También, cerciórese de que usted haya creado la lista que estos plomos son estar debajo de modo que usted pueda utilizarlos. Hay también la materia de la tiempo-zona-codificacio'n estos plomos. Usted puede desear aumentar la frecuencia que el ADMIN_adjust_GMTnow_on_leads.pl se está funcionando en el cron en su servidor del asterisco para poder cifrar cualquier plomo cargado más rápidamente. Aquí está una lista de los campos en su orden apropiada para los archivos del plomo|Ο VICIDIAL φορτωτής καθοδηγητών είναι απλά σχεδιασμένος, ώστε να παίρνει ένα αρχείο - μέχρι 8ΜΒ - που είναι διαχωρισμένο με tab ή pipe και να το φορτώνει στον πίνακα vicidial_list. Υπάρχει επίσης ένας νέος βήτα φορτωτής μολύβδου έκδοσης έξοχος που επιτρέπει τον τομέα επιλέγοντας και TXT - σαφές κείμενο, CSV - κόμμα χώρισε τις τιμές και XLS - σχήματα αρχείων Excel. Ο φορτωτής δεν κάνει εξακρίβωση δεδομένων ή έλεγχο σε διπλές καταχωρήσεις, το οποί είναι κάτι που πρέπει να κάνετε πριν την φόρτωση. Επίσης, διευκρινίστε ότι έχετε δημιουργήσει την λίστα όπου οι καθοδηγητές θα είναι από κάτω, ώστε να τους χρησιμοποιήσετε.Υπάρχει επίσης το θέμα με τις ζώνες κωδικοποίησης χρόνου των καθοδηγητών. Μπορεί να θέλετε να αυξήσετε την συχνότητα όπου το ADMIN_adjust_GMTnow_on_leads.pl τρέχει στον cron, ώστε οποιαδήποτε φόρτωση καθοδηγητών να κωδικοποιείται πιο γρήγορα. Εδώ είναι μία λίστα από πεδία στην πρέπουσα ταξινόμηση για τα αρχεία καθοδήγησης.||
NOTES: The Excel Lead loader functionality is enabled by a series of perl scripts and needs to have a properly configured /home/cron/AST_SERVER_conf.pl file in place on the web server. Also, a couple perl modules must be loaded for it to work as well - OLE-Storage_Lite and Spreadsheet-ParseExcel. You can check for runtime errors in these by looking at your apache error_log file|NOTAS: La funcionalidad del cargador del plomo del sobresalir es permitida por una serie de escrituras del Perl y necesita tener un archivo correctamente configurado de /home/cron/AST_SERVER_conf.pl en lugar en el web server. También, los módulos de un Perl de los pares se deben cargar para ella para trabajar también - oLE-Storage_Lite-Storage_Lite y la Hoja de balance-ParseExcel. Usted puede comprobar para saber si hay errores runtime en éstos mirando su archivo del error_log de apache|ΣΗΜΕΙΩΣΕΙΣ: Η λειτουργία φορτωτών μολύβδου Excel επιτρέπεται από μια σειρά χειρογράφων perl και πρέπει να έχει κατάλληλα διαμορφωμένη/ένα αρχείο home/cron/AST_SERVER_conf.pl σε ισχύ στον κεντρικό υπολογιστή δικτύου. Επίσης, οι ενότητες ζευγών perl πρέπει να φορτωθούν για το για να εργαστούν επίσης - ολε- Storage_Lite και υπολογισμός με λογιστικό φύλλο (spreadsheet)- ParseExcel. Μπορείτε να ελέγξετε για τα λάθη χρόνου εκτέλεσης σε αυτοί με την εξέταση το αρχείο apache σας error_log||
Vendor Lead Code - shows up in the Vendor ID field of the GUI|Código del plomo del vendedor - demuestra para arriba en el campo de la identificación del vendedor del GUI|Κωδικός Καθοδηγητού Προμηθευτού||
Source Code - internal use only for admins and DBAs|Código de fuente - uso interno solamente para los admins y DBAs|Πηγαίος Κώδικας - εσωτερική χρήση μόνο από διαχειριστές και DBAs||
List ID - the list number that these leads will show up under|Identificación de la lista - el número de la lista que estos plomos demostrarán para arriba debajo|ID λίστας - ο αριθμός λίστας που οι καθοδηγητές θα παρουσιαστούν κάτω από||
Phone Code - the prefix for the phone number - 1 for US, 01144 for UK, 01161 for AUS, etc|Código del teléfono - el prefijo para el teléfono number(1 para los E.E.U.U., 01144 para Reino Unido, 01161 para AUS, el etc)|Κωδικός τηλεφώνου - το πρόθεμα του τηλεφωνικού αριθμού (1 για ΗΠΑ, 01144 για Βρετανία κλπ)||
Phone Number - must be at least 8 digits long|Número de teléfono - debe ser por lo menos 8 dígitos de largo|Ο αριθμός τηλεφώνου - πρέπει να είναι τουλάχιστον 8 ψηφία||
Title - title of the customer - Mr. Ms. Mrs, etc...|Título - título del customer(Mr. Ms señ., etc...)|Τίτλος - ο τίτλος του πελάτη (κος. κα. κλπ)||
NOTE: It can take up to 30 seconds for changes submitted on this screen to go live|NOTA: Puede tomar hasta 30 segundos para los cambios sometidos en esta pantalla para ir viva|ΣΗΜΕΙΩΣΗ: Μπορεί να διαρκέσει και 30 δευτερόλεπτα για να καταχωρηθούν οι αλλαγές της οθόνης||
USER NOT ADDED - there is already a user in the system with this user number|USUARIO NO AGREGADO - hay ya un usuario en el sistema con este número del usuario|Ο ΧΡΗΣΤΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη ένας χρήστης με αυτό τον αριθμό||
USER NOT ADDED - Please go back and look at the data you entered|USUARIO NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó|Ο ΧΡΗΣΤΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε||
user id must be between 2 and 8 characters long|la ID del usuario debe estar entre 2 y 8 caracteres de largo|το id χρήστη πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες||
full name and password must be at least 2 characters long|el nombre completo y la contraseña deben ser por lo menos 2 caracteres de largo|το πλήρες όνομα και κωδικός πρέπει να είναι τουλάχιστον 2 χαρακτήρες||
CAMPAIGN NOT ADDED - there is already a campaign in the system with this ID|CAMPAÚA NO AGREGADA - hay ya una campaña en el sistema con esta identificación|Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία εκστρατεία με αυτό το ID||
CAMPAIGN NOT ADDED - Please go back and look at the data you entered|CAMPAÚA NO AGREGADA - vaya por favor detrás y mire los datos que usted incorporó|Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε||
campaign ID must be between 2 and 8 characters in length|la ID de la campaña debe estar entre 2 y 8 caracteres en longitud|το ID της εκστρατείας πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες||
campaign name must be between 6 and 40 characters in length|el nombre de la campaña debe estar entre 6 y 40 caracteres en longitud|το όνομα της εκστρατείας πρέπει να είναι μεταξύ 6 και 40 χαρακτήρες||
CAMPAIGN STATUS NOT ADDED - there is already a campaign-status in the system with this name|ESTADO de la CAMPAÚA - hay ya una campaña - estado NO AGREGADO en el sistema con este nombre|Η ΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη κατάσταση-εκστρατείας με αυτό το όνομα||
CAMPAIGN STATUS NOT ADDED - there is already a global-status in the system with this name|ESTADO de la CAMPAÚA NO AGREGADO - hay ya un global-estado en el sistema con este nombre|Η ΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία καθολική-κατάσταση με αυτό το όνομα||
CAMPAIGN STATUS NOT ADDED - Please go back and look at the data you entered|ESTADO de la CAMPAÚA NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó|Η ΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε||
status must be between 1 and 8 characters in length|el estado debe estar entre 1 y 8 caracteres en longitud|η κατάσταση πρέπει να είναι μεταξύ 1 και 8 χαρακτήρρες||
status name must be between 2 and 30 characters in length|el nombre del estado debe estar entre 2 y 30 caracteres en longitud|το όνομα της κατάστασης πρέπει να είναι μεταξύ 2 και 30 χαρακτήρρες||
CAMPAIGN HOTKEY NOT ADDED - there is already a campaign-hotkey in the system with this hotkey|CAMPAÚA HOTKEY NO AGREGADA - hay ya una campaña-hotkey en el sistema con este hotkey|ΤΟ ΚΛΕΙΔΙ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη ένα κλειδί-εκστρατείας με αυτό το κλειδί||
CAMPAIGN HOTKEY NOT ADDED - Please go back and look at the data you entered|CAMPAÚA HOTKEY NO AGREGADA - vaya por favor detrás y mire los datos que usted incorporó|ΤΟ ΚΛΕΙΔΙ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε||
hotkey must be a single character between 1 and 9|el hotkey debe ser un solo carácter entre 1 y 9|το κλειδί πρέπει να είναι ένας χαρακτηράς μεταξύ 1 και 9||
LIST NOT ADDED - there is already a list in the system with this ID|LISTA NO AGREGADA - hay ya una lista en el sistema con esta ID|Η ΛΙΣΤΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία λίστα με αυτό το ID||
LIST NOT ADDED - Please go back and look at the data you entered|LISTA NO AGREGADA - vaya por favor detrás y mire los datos que usted incorporó|Η ΛΙΣΤΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε||
List ID must be between 2 and 8 characters in length|La ID de la lista debe estar entre 2 y 8 caracteres en longitud|Το ID λίστας πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες||
List name must be at least 2 characters in length|El nombre de la lista debe ser por lo menos 2 caracteres en longitud|Το όνομα λίστας πρέπει να είναι 2 χαρακτήρες||
GROUP NOT ADDED - there is already a group in the system with this ID|GRUPO NO AGREGADO - hay ya un grupo en el sistema con esta ID|Η ΟΜΑΔΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία ομάδα με αυτό το ID||
GROUP NOT ADDED - Please go back and look at the data you entered|GRUPO NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó|Η ΟΜΑΔΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε||
Group ID must be between 2 and 20 characters in length and contain no|La ID de grupo debe estar entre 2 y 20 caracteres en longitud y contener no|Το ID ομάδας πρέπει να είναι μεταξύ 2 και 20 χαρακτήρες||
Group name and group color must be at least 2 characters in length|El color del nombre de grupo y del grupo debe ser por lo menos 2 caracteres en longitud|Το όνομα και χρώμα ομάδας πρέπει να είναι τουλάχιστον 2 χαρακτήρες||
REMOTE AGENTS NOT ADDED - there is already a remote agents entry starting with this userID|AGENTES ALEJADOS NO AGREGADOS - hay ya una entrada alejada de los agentes comenzando con esta ID del usuario|ΟΙ ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΡΗΣΤΕΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΑΝ - υπάρχει ήδη καταχώρηση απομακρυσμένων χρηστών που ξεκινάει με αυτό το ID χρήστη||
REMOTE AGENTS NOT ADDED - Please go back and look at the data you entered|AGENTES ALEJADOS NO AGREGADOS - vaya por favor detrás y mire los datos que usted incorporó|ΟΙ ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΡΗΣΤΕΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΑΝ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε||
User ID start and external extension must be at least 2 characters in length|El comienzo de la ID del usuario y la extensión externa deben ser por lo menos 2 caracteres en longitud|Το ID χρήστη και η εξωτερική εσωτ.σύνδεση πρέπει να είναι τουλάχιστον 2 χαρακτήρες||
USER GROUP NOT ADDED - there is already a user group entry with this name|GRUPO de USUARIO NO AGREGADO - hay ya una entrada del grupo de usuario con este nombre|ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ Η ΟΜΑΔΑ ΧΡΗΣΤΗ - υπάρχει ήδη μία καταχώρηση ομάδας χρήστη με αυτό το όνομα||
USER GROUP NOT ADDED - Please go back and look at the data you entered|GRUPO de USUARIO NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó|ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ Η ΟΜΑΔΑ ΧΡΗΣΤΗ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε||
Group name and description must be at least 2 characters in length|El nombre y la descripción de grupo deben ser por lo menos 2 caracteres en longitud|Η ομάδα και η περιγραφή πρέπει να είναι τουλάχιστον 2 χαρακτήρες||
USER NOT MODIFIED - Please go back and look at the data you entered|USUARIO NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó|Ο ΧΡΗΣΤΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε||
Password and Full Name each need ot be at least 2 characters in length|La contraseña y el nombre completo cada ot de la necesidad sean por lo menos 2 caracteres en longitud|Ο κωδικός και το πλήρες όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες το κάθε ένα||
CAMPAIGN NOT MODIFIED - Please go back and look at the data you entered|CAMPAÚA NO MODIFICADA - vaya por favor detrás y mire los datos que usted incorporó|Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε||
the campaign name needs to be at least 6 characters in length|el nombre de la campaña necesita ser por lo menos 6 caracteres en longitud|το όνομα της εκστρατείας πρέπει να είναι τουλάχιστον 6 χαρακτήρες||
RESETTING CAMPAIGN LEAD HOPPER|REAJUSTE DE LA TOLVA DEL PLOMO DE LA CAMPAÚA|ΕΠΑΝΑΦΟΡΑ ΚΑΘΟΘΗΓΗΤΗ ΕΚΣΤΡΑΤΕΙΑΣ HOPPER||
Wait 1 minute before dialing next number|Espera 1 minuto antes de marcar el número siguiente|Αναμονή 1 λεπτού πριν την κλήση του επόμενου αριθμού||
CAMPAIGN STATUS NOT MODIFIED - Please go back and look at the data you entered|ESTADO de la CAMPAÚA NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó|Η ΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε||
the campaign id needs to be at least 2 characters in length|la ID de la campaña necesita ser por lo menos 2 caracteres en longitud|το ID της εκστρατείας πρέπει να είναι τουλάχιστον 2 χαρακτήρες||
the campaign status needs to be at least 1 characters in length|el estado de la campaña necesita ser por lo menos los caracteres 1 en longitud|η κατάσταση της εκστρατείας πρέπει να είναι τουλάχιστον 1 χαρακτήρας||
CUSTOM CAMPAIGN STATUS DELETED|ESTADO DE ENCARGO DE LA CAMPAÚA SUPRIMIDO|ΔΙΑΓΡΑΦΗΚΕ Η ΠΡΟΣΑΡΜΟΣΜΕΝΗ ΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ||
CAMPAIGN HOTKEY NOT MODIFIED - Please go back and look at the data you entered|CAMPAÚA HOTKEY NO MODIFICADA - vaya por favor detrás y mire los datos que usted incorporó|ΤΟ ΚΛΕΙΔΙ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε||
the campaign hotkey needs to be at least 1 characters in length|el hotkey de la campaña necesita ser por lo menos los caracteres 1 en longitud|το κλειδί της εκστρατείας πρέπει να είναι τουλάχιστον 1 χαρακτήρας||
CUSTOM CAMPAIGN HOTKEY DELETED|LA CAMPAÚA DE ENCARGO HOTKEY SUPRIMIÚ|ΔΙΑΦΡΑΦΗΚΕ ΤΟ ΠΡΟΣΑΡΜΟΣΜΕΝΟ ΚΛΕΙΔΙ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ||
CAMPAIGN NOT MODIFIED - Please go back and look at the data you entered|CAMPAÚA NO MODIFICADA - vaya por favor detrás y mire los datos que usted incorporó|Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε||
the campaign name needs to be at least 6 characters in length|el nombre de la campaña necesita ser por lo menos 6 caracteres en longitud|το όνομα εκστρατείας πρέπει να είναι τουλάχιστον 6 χαρακτήρες||
LIST NOT MODIFIED - Please go back and look at the data you entered|LISTA NO MODIFICADA - vaya por favor detrás y mire los datos que usted incorporó|Η ΛΙΣΤΑ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε||
list name must be at least 2 characters in length|el nombre de la lista debe ser por lo menos 2 caracteres en longitud|η λίστα πρέπει να είναι τουλαχιστον 2 χαρακτήρες||
REMOVING LIST HOPPER LEADS FROM OLD CAMPAIGN HOPPER|QUITAR LOS PLOMOS DE LA TOLVA DE LA LISTA DE VIEJA TOLVA DE LA CAMPAÚA|ΑΠΟΜΑΚΡΥΝΣΗ ΚΑΘΟΔΗΓΗΤΩΝ ΛΙΣΤΑΣ HOPPER ΑΠΟ ΠΑΛΑΙΑ HOPPER ΕΚΣΤΡΑΤΕΙΑ||
GROUP NOT MODIFIED - Please go back and look at the data you entered|GRUPO NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó|Η ΟΜΑΔΑ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε||
group name and group color must be at least 2 characters in length|el color del nombre de grupo y del grupo debe ser por lo menos 2 caracteres en longitud|το όνομα και χρώμα ομάδας πρέπει να είναι τουλάχιστον 2 χαρακτήρες||
REMOTE AGENTS NOT MODIFIED - Please go back and look at the data you entered|AGENTES ALEJADOS NO MODIFICADOS - vaya por favor detrás y mire los datos que usted incorporó|ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΡΗΣΤΕΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΑΝ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε||
User ID Start and External Extension must be at least 2 characters in length|El comienzo de la ID del usuario y la extensión externa deben ser por lo menos 2 caracteres en longitud|Το ID του χρήστη και η εξωτερική εσωτ.σύνδεση πρέπει να είναι τουλάχιστον 2 χαρακτήρες||
REMOTE AGENTS MODIFIED|LOS AGENTES ALEJADOS SE MODIFICARON|ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΡΗΣΤΕΣ ΤΡΟΠΟΠΟΙΗΘΗΚΑΝ||
USER GROUP NOT MODIFIED - Please go back and look at the data you entered|GRUPO de USUARIO NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó|Η ΟΜΑΔΑ ΧΡΗΣΤΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε||
Group name and description must be at least 2 characters in length|El nombre y la descripción de grupo deben ser por lo menos 2 caracteres en longitud|Ονομα ομάδας και περιγραφή πρέπει να είναι τουλάχιστον 2 χαρακτήρες||
MODIFY A USERS RECORD|MODIFIQUE Un EXPEDIENTE De los USUARIOS|ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΧΡΗΣΤΩΝ||
Click here for user stats|Clique aquí para ver las estadísticas del usuario|Πατήστε εδώ για στατιστικά χρήστη||
MODIFY A CAMPAIGNS RECORD|MODIFIQUE Un EXPEDIENTE De las CAMPAÚAS|ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΕΚΣΤΡΑΤΕΙΩΝ||
CONFERENCES TABLE|TABLA DE CONFERENCIAS|ΠΙΝΑΚΑΣ ΣΥΝΔΙΑΛΕΞΕΩΝ||
Conference Number -<\/B> This field is where you put the meetme conference dialpna number. It is also recommended that the meetme number in meetme.conf matches this number for each entry. This is for the conferences in astGUIclient and is used for leave-3way-call functionality in VICIDIAL|Número de la conferencia -</B> este campo es donde usted pone el número del dialpna de la conferencia del meetme. También se recomienda que el número del meetme en meetme.conf empareja este número para cada entrada. Esto está para las conferencias en astGUIclient y se utiliza para la funcionalidad de leave-3way-call en VICIDIAL|Αριθμός Συνδιάλεξης -</B> Αυτό το πεδίο είναι για τον αριθμό συνδιάλεξης meetme στο σχέδιο κλήσεων. Επίσης, συνιστούμε ο αριθμός meetme στο meetme.conf να ταιριάζει με αυτό τον αριθμό για κάθε καταχώρηση. Αυτό είναι για τις συνδιαλέξε στο astGUIclient και χρησιμοποιείται για την λειτουργία αποχώρησης από κλήση με 3 γραμμές στο VICIDIAL||
Server IP -<\/B> The menu where you select the Asterisk server that this conference will be on|IP del servidor -</B> El menú donde usted selecciona el servidor del asterisco que esta conferencia estará encendido|IP Διακομιστή-</B> Ο κατάλογος που επιλέξατε τον διακομιστή ASTERISK όπου η συνδιάλεξη θα είναι||
PHONE NOT ADDED - there is already a Phone in the system with this extension\/server|TELÉFONO NO AGREGADO - hay ya un teléfono en el sistema con esta extensión/servidor|ΤΟ ΤΗΛΕΦΩΝΟ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη ένα τηλέφωνο με αυτή την εσωτ.σύνδεση/διακομιστή||
PHONE NOT ADDED - Please go back and look at the data you entered|TELÉFONO NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó|ΤΟ ΤΗΛΕΦΩΝΟ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε||
PHONE ADDED|EL TELÉFONO AGREGÚ|ΤΟ ΤΗΛΕΦΩΝΟ ΠΡΟΣΤΕΘΗΚΕ||
SERVER NOT ADDED - there is already a server in the system with this ID|SERVIDOR NO AGREGADO - hay ya un servidor en el sistema con esta identificación|Ο ΔΙΑΚΟΜΙΣΤΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη ένας διακομιστής με αυτό το ID||
SERVER NOT ADDED - Please go back and look at the data you entered|SERVIDOR NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó|Ο ΔΙΑΚΟΜΙΣΤΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε||
SERVER ADDED|SERVIDOR AGREGADO|Ο ΔΙΑΚΟΜΙΣΤΗΣ ΠΡΟΣΤΕΘΗΚΕ||
CONFERENCE NOT ADDED - there is already a conference in the system with this ID and server|CONFERENCIA NO AGREGADA - hay ya una conferencia en el sistema con esta identificación y servidor|Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία συνδιάλεξη με αυτό το ID και διακομιστή||
CONFERENCE NOT ADDED - Please go back and look at the data you entered|CONFERENCIA NO AGREGADA - vaya por favor detrás y mire los datos que usted incorporó|Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε||
CONFERENCE ADDED|LA CONFERENCIA AGREGÚ|Η ΣΥΝΔΙΑΛΕΞΗ ΠΡΟΣΤΕΘΗΚΕ||
PHONE NOT MODIFIED - there is already a Phone in the system with this extension\/server|TELÉFONO NO MODIFICADO - hay ya un teléfono en el sistema con esta extensión/servidor|ΤΟ ΤΗΛΕΦΩΝΟ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - υπάρχει ήδη ένα τηλέφωνο με αυτή την εσωτ.σύνδεση/διακομιστή||
PHONE NOT MODIFIED - Please go back and look at the data you entered|TELÉFONO NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó|ΤΟ ΤΗΛΕΦΩΝΟ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε||
PHONE MODIFIED|TELÉFONO MODIFICADO|ΤΟ ΤΗΛΕΦΩΝΟ ΤΡΟΠΟΠΟΙΗΘΗΚΕ||
SERVER NOT MODIFIED - there is already a server in the system with this server_ip|SERVIDOR NO MODIFICADO - hay ya un servidor en el sistema con este server_ip|Ο ΔΙΑΚΟΜΙΣΤΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - υπάρχει ήδη ένας διακομιστής με αυτό το IP||
SERVER NOT MODIFIED - Please go back and look at the data you entered|SERVIDOR NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó|Ο ΔΙΑΚΟΜΙΣΤΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε||
SERVER MODIFIED|SERVIDOR MODIFICADO|Ο ΔΙΑΚΟΜΙΣΤΗΣ ΤΡΟΠΟΠΟΙΗΘΗΚΕ||
CONFERENCE NOT MODIFIED - there is already a Conference in the system with this extension-server|CONFERENCIA - hay ya una conferencia en el sistema con esta extensión - servidor NO MODIFICADO|Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - υπάρχει ήδη μία συνδιάλεξη με αυτή την εσωτ.σύνδεση-διακομιστή||
CONFERENCE NOT MODIFIED - Please go back and look at the data you entered|CONFERENCIA NO MODIFICADA - vaya por favor detrás y mire los datos que usted incorporó|Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε||
You do not have permissions to modify this user|Usted no tiene permisos de modificar a este usuario|Δεν έχετε τις άδειες να τροποποιήσετε αυτόν τον χρήστη||
Click here to delete user|Chasque aquí para suprimir a usuario|Χτυπήστε εδώ για να διαγράψετε το χρήστη||
Please go back and look at the data you entered|Vaya por favor detrás y mire los datos que usted incorporó|Παρακαλώ επιστρέψτε και εξετάστε τα στοιχεία που εισαγάγατε||
Click here to delete campaign|Chasque aquí para suprimir campaña|Χτυπήστε εδώ για να διαγράψετε την εκστρατεία||
Click here to delete list and all of its leads|Chasque aquí para suprimir la lista y todos sus plomos|Χτυπήστε εδώ για να διαγράψετε τον κατάλογο και τους όλους μολύβδους του||
REMOVING LIST LEADS FROM VICIDIAL_LIST TABLE|QUITAR LOS PLOMOS DE LA LISTA DE LA TABLA DE VICIDIAL_LIST|ΑΦΑΙΡΕΣΗ ΤΩΝ ΜΟΛΥΒΔΩΝ ΚΑΤΑΛΟΓΩΝ ΑΠΟ ΤΟΝ ΠΊΝΑΚΑ VICIDIAL_LIST||
Click here to delete in-group|Chasque aquí para suprimir a en-grupo|Χτυπήστε εδώ για να διαγράψετε την-ΟΜΑΔΑ||
Click here to delete remote agent|Chasque aquí para suprimir el agente alejado|Χτυπήστε εδώ για να διαγράψετε το μακρινό πράκτορα||
Click here to delete user group|Chasque aquí para suprimir a grupo de usuario|Χτυπήστε εδώ για να διαγράψετε την ομάδα χρηστών||
Click here to delete phone|Chasque aquí para suprimir el teléfono|Χτυπήστε εδώ για να διαγράψετε το τηλέφωνο||
there is already a script entry with this name|hay ya una entrada de la escritura con este nombre|υπάρχει ήδη μια είσοδος χειρογράφων με αυτό το όνομα||
Script name, description and text must be at least 2 characters in length|El nombre, la descripción y el texto de la escritura deben ser por lo menos 2 caracteres en longitud|Το όνομα, η περιγραφή και το κείμενο χειρογράφων πρέπει να είναι τουλάχιστον 2 χαρακτήρες στο μήκος||
Click here to delete script|Chasque aquí para suprimir la escritura|Χτυπήστε εδώ για να διαγράψετε το χειρόγραφο||
Phone Login|Conexión Del Teléfono|Τηλεφωνική σύνδεση||
Phone Pass|Contraseña Del Teléfono|Τηλεφωνικός κωδικός πρόσβασης||
Delete Users|Usuarios de la cancelación|Διαγράψτε τους χρήστες||
Delete User Groups|Suprima a grupos de usuario|Διαγράψτε τις ομάδες χρηστών||
Delete Lists|La cancelación enumera|Διαγράψτε τους καταλόγους||
Delete Campaigns|La cancelación hace campaña|Διαγράψτε τις εκστρατείες||
Delete In-Groups|En-Grupos de la cancelación|Διαγράψτε τις-ΟΜΑΔΕΣ||
Delete Remote Agents|Suprima los agentes alejados|Διαγράψτε τους μακρινούς πράκτορες||
Delete Script|Escritura De la Cancelación|Διαγράψτε το χειρόγραφο||
Load Leads|La carga conduce|Το φορτίο οδηγεί||
Campaign Detail|Detalle de la campaña|Λεπτομέρεια εκστρατείας||
AGC Admin Access|Acceso de AGC Admin|Πρόσβαση AGC Admin||
AGC Delete Phones|La cancelación de AGC telefona|Το AGC διαγράφει τα τηλέφωνα||
SCRIPT NOT ADDED|ESCRITURA NO AGREGADA|ΧΕΙΡΟΓΡΑΦΟ ΠΡΟΣΤΙΘΕΜΕΝΟ||
SCRIPT ADDED|ESCRITURA AGREGADA|ΧΕΙΡΟΓΡΑΦΟ ΠΡΟΣΤΙΘΕΜΕΝΟ||
SCRIPT NOT MODIFIED|ESCRITURA NO MODIFICADA|ΧΕΙΡΟΓΡΑΦΟ ΤΡΟΠΟΠΟΙΗΜΕΝΟ||
SCRIPT MODIFIED|LA ESCRITURA SE MODIFICÓ|ΧΕΙΡΟΓΡΑΦΟ ΤΡΟΠΟΠΟΙΗΜΕΝΟ||
DELETE THIS USER|SUPRIMA A ESTE USUARIO|ΔΙΑΓΡΑΨΤΕ ΑΥΤΟΝ ΤΟΝ ΧΡΗΣΤΗ||
DELETE THIS CAMPAIGN|SUPRIMA ESTA CAMPAÑA|ΔΙΑΓΡΑΨΤΕ ΑΥΤΗΝ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ||
DELETE THIS LIST|SUPRIMA ESTA LISTA|ΔΙΑΓΡΑΨΤΕ ΑΥΤΟΝ ΤΟΝ ΚΑΤΑΛΟΓΟ||
DELETE THIS IN-GROUP|SUPRIMA A ESTE EN-GRUPO|ΔΙΑΓΡΑΨΤΕ ΑΥΤΟΝ ΤΟΝ ΣΤΗΝ-ΟΜΑΔΑ||
DELETE THIS REMOTE AGENT|SUPRIMA ESTE AGENTE ALEJADO|ΔΙΑΓΡΑΨΤΕ ΑΥΤΟΝ ΤΟΝ ΜΑΚΡΙΝΟ ΠΡΑΚΤΟΡΑ||
DELETE THIS USER GROUP|SUPRIMA A ESTE GRUPO DE USUARIO|ΔΙΑΓΡΑΨΤΕ ΑΥΤΗΝ ΤΗΝ ΟΜΑΔΑ ΧΡΗΣΤΩΝ||
DELETE THIS PHONE|SUPRIMA ESTE TELÉFONO|ΔΙΑΓΡΑΨΤΕ ΑΥΤΟ ΤΟ ΤΗΛΕΦΩΝΟ||
DELETE THIS SCRIPT|SUPRIMA ESTA ESCRITURA|ΔΙΑΓΡΑΨΤΕ ΑΥΤΟ ΤΟ ΧΕΙΡΟΓΡΑΦΟ||
USER NOT DELETED|USUARIO NO SUPRIMIDO|ΧΡΗΣΤΗΣ ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ||
CAMPAIGN NOT DELETED|CAMPAÑA NO SUPRIMIDA|ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ ΕΚΣΤΡΑΤΕΙΑ||
LIST NOT DELETED|LISTA NO SUPRIMIDA|ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ ΚΑΤΑΛΟΓΟΣ||
IN-GROUP NOT DELETED|EN-GRUPO NO SUPRIMIDO|ΣΤΗΝ-ΟΜΑΔΑ ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ||
REMOTE AGENT NOT DELETED|AGENTE ALEJADO NO SUPRIMIDO|ΜΑΚΡΙΝΟΣ ΠΡΑΚΤΟΡΑΣ ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ||
USER GROUP NOT DELETED|GRUPO DE USUARIO NO SUPRIMIDO|ΟΜΑΔΑ ΧΡΗΣΤΩΝ ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ||
PHONE NOT DELETED|TELÉFONO NO SUPRIMIDO|ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ ΤΗΛΕΦΩΝΟ||
SCRIPT NOT DELETED|ESCRITURA NO SUPRIMIDA|ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ ΧΕΙΡΟΓΡΑΦΟ||
USER DELETION CONFIRMATION|CONFIRMACIÓN DE LA CANCELADURA DEL USUARIO|ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΧΡΗΣΤΩΝ||
USER DELETION COMPLETED|CANCELADURA DEL USUARIO TERMINADA|ΔΙΑΓΡΑΦΗ ΧΡΗΣΤΩΝ ΠΟΥ ΟΛΟΚΛΗΡΩΝΕΤΑΙ||
CAMPAIGN DELETION CONFIRMATION|CONFIRMACIÓN DE LA CANCELADURA DE LA CAMPAÑA|ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΕΚΣΤΡΑΤΕΙΑΣ||
CAMPAIGN DELETION COMPLETED|LA CANCELADURA DE LA CAMPAÑA TERMINÓ|ΔΙΑΓΡΑΦΗ ΕΚΣΤΡΑΤΕΙΑΣ ΠΟΥ ΟΛΟΚΛΗΡΩΝΕΤΑΙ||
Logout Agents|Agentes Del Registro de estado de la máquina|Πράκτορες αποσύνδεσης||
AGENTS NOT LOGGED OUT OF CAMPAIGN|AGENTES NO REGISTRADOS FUERA DE CAMPAÑA|ΠΡΑΚΤΟΡΕΣ ΠΟΥ ΔΕΝ ΚΑΤΑΓΡΑΦΟΝΤΑΙ ΑΠΟ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ||
AGENT LOGOUT CONFIRMATION|CONFIRMACIÓN DEL REGISTRO DE ESTADO DE LA MÁQUINA DEL AGENTE|ΕΠΙΒΕΒΑΙΩΣΗ ΑΠΟΣΥΝΔΕΣΗΣ ΠΡΑΚΤΟΡΩΝ||
Click here to log all agents out of|Chasque aquí para registrar todos los agentes fuera de|Χτυπήστε εδώ για να καταγράψετε όλους τους πράκτορες από||
AGENT LOGOUT COMPLETED|EL REGISTRO DE ESTADO DE LA MÁQUINA DEL AGENTE TERMINÓ|ΑΠΟΣΥΝΔΕΣΗ ΠΡΑΚΤΟΡΩΝ ΠΟΥ ΟΛΟΚΛΗΡΩΝΕΤΑΙ||
LOG ALL AGENTS OUT OF THIS CAMPAIGN|REGISTRE TODOS LOS AGENTES FUERA DE ESTA CAMPAÑA|ΚΑΤΑΓΡΑΨΤΕ ΟΛΟΥΣ ΤΟΥΣ ΠΡΑΚΤΟΡΕΣ ΑΠΟ ΑΥΤΗΝ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ||
LIST DELETION CONFIRMATION|CONFIRMACIÓN DE LA CANCELADURA DE LA LISTA|ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΚΑΤΑΛΟΓΩΝ||
LIST DELETION COMPLETED|LA CANCELADURA DE LA LISTA TERMINÓ|ΔΙΑΓΡΑΦΗ ΚΑΤΑΛΟΓΩΝ ΠΟΥ ΟΛΟΚΛΗΡΩΝΕΤΑΙ||
IN-GROUP DELETION CONFIRMATION|CONFIRMACIÓN DE LA CANCELADURA DE EN-GRUPO|ΣΤΗΝ-ΟΜΑΔΑ ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ||
IN-GROUP DELETION COMPLETED|CANCELADURA DE EN-GRUPO TERMINADA|ΣΤΗΝ-ΟΜΑΔΑ ΔΙΑΓΡΑΦΗ ΠΟΥ ΟΛΟΚΛΗΡΩΝΕΤΑΙ||
REMOTE AGENT DELETION CONFIRMATION|CONFIRMACIÓN ALEJADA DE LA CANCELADURA DEL AGENTE|ΜΑΚΡΙΝΗ ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΠΡΑΚΤΟΡΩΝ||
REMOTE AGENT DELETION COMPLETED|CANCELADURA ALEJADA DEL AGENTE TERMINADA|ΜΑΚΡΙΝΗ ΔΙΑΓΡΑΦΗ ΠΡΑΚΤΟΡΩΝ ΠΟΥ ΟΛΟΚΛΗΡΩΝΕΤΑΙ||
USER GROUP DELETION CONFIRMATION|CONFIRMACIÓN DE LA CANCELADURA DEL GRUPO DE USUARIO|ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΟΜΑΔΑΣ ΧΡΗΣΤΩΝ||
USER GROUP DELETION COMPLETED|CANCELADURA DEL GRUPO DE USUARIO TERMINADA|ΔΙΑΓΡΑΦΗ ΟΜΑΔΑΣ ΧΡΗΣΤΩΝ ΠΟΥ ΟΛΟΚΛΗΡΩΝΕΤΑΙ||
PHONE DELETION CONFIRMATION|CONFIRMACIÓN DE LA CANCELADURA DEL TELÉFONO|ΕΠΙΒΕΒΑΙΩΣΗ ΤΗΛΕΦΩΝΙΚΗΣ ΔΙΑΓΡΑΦΗΣ||
PHONE DELETION COMPLETED|LA CANCELADURA DEL TELÉFONO TERMINÓ|ΔΙΑΓΡΑΦΗ ΠΟΥ ΟΛΟΚΛΗΡΩΝΕΤΑΙ ΤΗΛΕΦΩΝΙΚΗ||
SCRIPT DELETION CONFIRMATION|CONFIRMACIÓN DE LA CANCELADURA DE LA ESCRITURA|ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΧΕΙΡΟΓΡΑΦΩΝ||
SCRIPT DELETION COMPLETED|CANCELADURA DE LA ESCRITURA TERMINADA|ΔΙΑΓΡΑΦΗ ΧΕΙΡΟΓΡΑΦΩΝ ΠΟΥ ΟΛΟΚΛΗΡΩΝΕΤΑΙ||
Preview Script|Escritura De la Inspección previo|Χειρόγραφο πρόβλεψης||
MODIFY A SCRIPT|MODIFIQUE Una ESCRITURA|ΤΡΟΠΟΠΟΙΗΣΤΕ ένα ΧΕΙΡΟΓΡΑΦΟ||
title of the script|título de la escritura|τίτλος του χειρογράφου||
CONFERENCE MODIFIED|CONFERENCIA MODIFICADA|Η ΣΥΝΔΙΑΛΕΞΗ ΤΡΟΠΟΠΟΙΗΘΗΚΕ||
MODIFY A PHONE RECORD|MODIFICANDO EL TELÉFONO|ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΤΗΛΕΦΩΝΟΥ||
THE END|EL EXTREMO|ΤΕΛΟΣ||
LIST ALL PHONES|ENUMERE TODOS LOS TELÉFONOS|ΛΙΣΤΑ ΟΛΩΝ ΤΩΝ ΤΗΛΕΦΩΝΩΝ||
ADD A NEW PHONE|AGREGUE Un TELÉFONO NUEVO|ΠΡΟΣΘΗΚΗ ΝΕΟΥ ΤΗΛΕΦΩΝΟΥ||
SEARCH FOR A PHONE|BÚSQUEDA PARA Un TELÉFONO|ΑΝΑΖΗΤΗΣΗ ΤΗΛΕΦΩΝΟΥ||
ADD A SERVER|AGREGUE Un SERVIDOR|ΠΡΟΣΘΗΚΗ ΔΙΑΚΟΜΙΣΤΗ||
LIST ALL SERVERS|ENUMERE TODOS LOS SERVIDORES|ΛΙΣΤΑ ΟΛΩΝ ΤΩΝ ΔΙΑΚΟΜΙΣΤΩΝ||
SHOW ALL CONFERENCES|DEMUESTRE TODAS LAS CONFERENCIAS|ΕΜΦΑΝΙΣΗ ΟΛΩΝ ΤΩΝ ΣΥΝΔΙΑΛΕΞΕΩΝ||
ADD A NEW CONFERENCE|AGREGUE Una NUEVA CONFERENCIA|ΠΡΟΣΘΗΚΗ ΝΕΑΣ ΣΥΝΔΙΑΛΕΞΗΣ||
AMD Send to VM exten|AMD envían a la VM exten|AMD στέλνει στο VM||
Transfer-Conf DTMF|Transfiera -Conf DTMF|Μεταφορά- Conf DTMF||
Transfer-Conf Number|Transfiera -Conf El Número|Μεταφορά- Conf αριθμός||
HotKeys Active|HotKeys Activo|HotKeys ενεργός||
Modify Leads|Modifique Los Plomos|Τροποποιήστε τους μολύβδους||
Change Agent Campaign|Cambie La Campaña Del Agente|Εκστρατεία πρακτόρων αλλαγής||
Agent Choose Ingroups|El Agente Elige Ingroups|Ο πράκτορας επιλέγει Ingroups||
CallBacks Within Campaign|Servicios repetidos Dentro De la Campaña|CallBacks μέσα στην εκστρατεία||
CallBacks Within List|Servicios repetidos Dentro De la Lista|CallBacks μέσα στον κατάλογο||
CallBacks Within Agent|Servicios repetidos Dentro Del Agente|CallBacks μέσα στον πράκτορα||
Phone extension|Extensión del teléfono|Τηλ.σύνδεσης τηλεφώνου||
Dialplan Number|Número De Dialplan|Αριθμός Σχεδίου Κλήσεων||
digits only|Solamente dígitos|μόνο αριθμοί||
Voicemail Box|Buzón de voz|Περιεχόμενο Φωνητικού Ταχυδρομείου||
Outbound CallerID|CallerID De salida|Εξερχόμενο CallerID||
Phone IP address|Dirección IP del teléfono|Δνση IP Τηλεφώνου||
Computer IP address|Dirección IP del ordenador|Δνση IP Υπολογιστή||
Server IP Address|Dirección IP del Servidor|Δνση IP Διακομιστή||
Server IP|IP Del Servidor|IP Διακομιστή||
Login: |Login: |Σύνδεση:||
Password: |Contraseña: |Κωδικός:||
Status: |Estado: |Κατάσταση:||
Active Account|Cuenta Activa|Ενεργός Λογαριασμού||
Phone Type|Tipo Del Teléfono|Τύπος τηλεφώνου||
Full Name|Nombre Completo|Πλήρες Ονομα||
Company: |Compañía: |Εταιρία:||
Picture: |Foto: |Εικόνα:||
Client Protocol|Protocolo Del Cliente|Προτόκολο Πελάτη||
Local GMT|GMT Local|Τοπικό GMT||
Do NOT Adjust for DST|No ajustar para el DST|Μην ρυθμίσεις για DST||
VALUE=SUBMIT|VALUE=ENVIAR|ΤΙΜΗ=ΥΠΟΒΑΛΛΩ||
ADD A NEW SERVER|AGREGAR Un SERVIDOR NUEVO|ΠΡΟΣΘΗΚΗ ΝΕΟΥ ΔΙΑΚΟΜΙΣΤΗ||
Server ID|ID Del Servidor|ID Διακομιστή||
Server Description|Descripción Del Servidor|Περιγραφή Διακομιστή||
Active: |Activo: |Ενεργός:||
Asterisk Version|Versión De Asterisk|Εκδοση Asterisk||
Conference Number|Número de la Conferencia|Αριθμός Συνδιάλεξης||
New Messages|Mensajes Nuevos|Νέα Μηνύματα||
Old Messages|Mensajes Viejos|Παλαιά Μηνύματα||
Manager Login|Login del Manager|Διαχειριστή Σύνδεση||
Manager Secret|Contraseña del Manager|Διαχειριστή Μυστικό||
VICIDIAL Default User|Usuario por defecto de VICIDIAL|VICIDIAL Προκαθορισμένος Χρήστης||
VICIDIAL Default Pass|Contraseña por defecto de VICIDIAL|VICIDIAL Προκαθορισμένος Κωδικός||
VICIDIAL Default Campaign|Campaña por defecto de VICIDIAL|VICIDIAL Προκαθορισμένη εκστρατεία||
Park Extension|Extensión del parking|Τηλ.σύνδ. Στάθμευσης||
Park Exten|Extensión del parking|Τηλ.σύνδ. Στάθμευσης||
Conf Extension|Extensión de la conferencia|Τηλ.σύνδ. Συνδ.||
Conf Exten|Extensión de la conferencia|Τηλ.σύνδ. Συνδ.||
VICIDIAL Park Exten|Exten. Del parking de VICIDIAL|VICIDIAL Τηλ.σύνδ. Στάθμευσης||
VICIDIAL Park File|Archivo para música del parking de VICIDIAL|VICIDIAL Αρχείο Στάθμευσης||
Monitor Prefix|Prefijo al monitorizar|Πρόθεμα Παρακολούθησης||
Recording Exten|Exten de Grabación|Ηχογράφηση εσωτ.σύνδ.||
VMailMain Exten|Exten de VmailMain|VMailMain Τηλ.σύνδ.||
VMailDump Exten|Exten de VmaiDumpl|VMailDump Τηλ.σύνδ.||
Exten Context|Contexto De Exten|Περιεχόμενο Τηλ.σύνδ||
DTMFSend Channel|Canal de envío del DTMF|DTMFSend Κανάλι||
Outbound Call Group|Grupo de las llamadas de salida|Ομάδα Εξερχομένων Κλήσεων||
Browser Location|Localización del Navegador|Θέση Φυλλομετρητή||
Install Directory|Directorio de instalación|Κατάλογος εγκατάστασης||
CallerID URL|URL del CallerID|CallerID URL||
VICIDIAL Default URL|URL por defecto de VICIDIAL|VICIDIAL Προκαθορισμένο URL||
Call Logging|Call Logging|Καταγραφή Γεγονότος Κλήσης||
User Switching|Cambio de Usuario|Μεταγωγή Χρήστη||
Conferencing|Conferencias|Σε συνδιαλέξη||
Admin Hangup|Colgar del Admin|Διαχειριστού Κλείσιμο||
Admin Hijack|Captura del Admin|Διαχειριστού Κλέψιμο||
Admin Monitor|Monitorización del Admin|Διαχειριστού Παρακολούθηση||
Call Park|Parking de Llamada|Στάθμευση Κλήσης||
Updater Check|Uptader Check|Ελεγχος ενημερωτή||
AF Logging|AF Logging|AF Καταγραφή Γεγονότος||
Queue Enabled|Colas permitidas|Ενεργή Ουρά||
CallerID Popup|Ventana emergente del CallerID|Υπερεμφανιζόμενο παραθύρο CallerID||
VMail Button|Botón Vmail|Πλήκτρο VMail||
Fast Refresh|Refresco rápido|Ταχύτητα Ανανέωσης||
Fast Refresh Rate|Refresco rápido de la tarifa|Ρυθμός Ανανέωσης Ταχύτητας||
Persistant MySQL|Persistant MySQL|Συνεχής MySQL||
Auto Dial Next Number|Auto Marcar el Siguiente Número|Αυτόματη Κλήση Επόμενου Αριθμού||
Stop Rec after each call|Parar de Grabar después de cada llamada|Σταμάτα την ηχογράφηση μετά από κάθε κλήση||
Primary |Primario |Πρωταρχικό ||
Secondary |Secundario |Δευτερεύον||
DBX Server|Servidor de DBX|DBX Διακομιστής||
DBX Database|Base de datos de DBX|DBX Βάση Δεδομένων||
DBX User|Usuario de DBX|DBX Χρήστης||
DBX Pass|Contraseña de DBX|DBX Κωδικός||
DBX Port|Puerto de DBX|DBX Πόρτα||
DBY Server|Servidor de DBY|DBY Διακομιστής||
DBY Database|Base de datos de DBY|DBY Βάση Δεδομένων||
DBY User|Usuario de DBY|DBY Χρήστης||
DBY Pass|Contraseña de DBY|DBY Κωδικός||
DBY Port|Puerto de DBY|DBY Πόρτα||
MODIFY A SERVER RECORD|MODIFICAR UN REGISTRO DEL SERVIDOR|ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΑΦΗΣ ΔΙΑΚΟΜΙΣΤΗ||
Max VICIDIAL Trunks|Máx. Trunks en VICIDIAL|Μέγιστος Αριθμός Trunk του VICIDIAL||
Telnet Host|Host Del Telnet|Λήπτης Telnet||
Telnet Port|Puerto Del Telnet|Πόρτα Telnet||
Manager User|Usuario Del Manager|Χρήστη Διαχειριστή||
Manager Update User|Usuario del Updater del Manager|Ενημέρωση Χρήστη Διαχειριστή||
Manager Listen User|Usuario Listen del Manager|Παρακολούθηση Χρήστη Διαχειριστή||
Manager Send User|Usuario Send del Manager|Αποστολή Χρήστη Διαχειριστή||
VMail Dump Exten|Extensión de Vmail Dump |VMail εσωτ.σύνδεση απόρριψης||
VICIDIAL AD extension|Extensión del AD de VICIDIAL|VICIDIAL AD εσωτ.σύνδεση||
Default Context|Contexto por Defecto|Προκαθορισμένο Περιεχόμενο||
PHONES WITHIN THIS SERVER|TELÉFONOS DENTRO DE ESTE SERVIDOR|ΤΗΛΕΦΩΝΑ ΣΤΟΝ ΔΙΑΚΟΜΙΣΤΗ||
>EXTENSION<|>EXTENSIÓN<|>ΤΗΛ.ΣΥΝΔΕΣΗ<||
>NAME<|>NOMBRE<|>ΟΝΟΜΑ<||
>ACTIVE<|>ACTIVO<|>ΕΝΕΡΓΑ<||
>MODIFY<|>MODIFICAR<|>ΤΡΟΠΟΠΟΙΗΣΗ<||
This server has|Este servidor tiene|Αυτός ο διακομιστής έχει||
active phones and|Teléfonos activos y|ενεργά τηλέφωνα και||
inactive phones|Teléfonos inactivos|μη ενεργά τηλέφωνα||
MODIFY A CONFERENCE RECORD|MODIFICAR UN REGISTRO DE LA CONFERENCIA|ΤΡΟΠΟΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΣΥΝΔΙΑΛΕΞΗΣ||
Conference: |Conferencia: |Συνδιαλέξη:||
Current Extension|Extensión Actual|Ισχύουσα εσωτ.σύνδεση||
extension: |Extensión: |εσωτ.σύνδεση:||
SEARCH RESULTS|RESULTADOS DE LA BÚSQUEDA|ΑΝΑΖΗΤΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ||
PHONE LISTINGS|LISTADOS DE TELÉFONOS|ΕΝΤΑΓΜΕΝΑ ΤΗΛΕΦΩΝΑ||
SERVER LISTINGS|LISTADOS DEL SERVIDOR|ΕΝΤΑΓΜΕΝΟΙ ΔΙΑΚΟΜΙΣΤΕΣ||
CONFERENCE LISTINGS|LISTADOS DE CONFERENCIAS|ΕΝΤΑΓΜΕΝΕΣ ΣΥΝΔΙΑΛΕΞΕΙΣ||
script runtime|Script runtime|διαδικασία που τρέχει||
ADD NEW PHONE|NUEVO TELÉFONO|ΠΡΟΣΘΕΣΕ ΝΕΟ ΤΗΛΕΦΩΝΟ||
ADD NEW SERVER|NUEVO SERVIDOR|ΠΡΟΣΘΕΣΕ ΝΕΟ ΔΙΑΚΟΜΙΣΤΗ||
ADD NEW CONFERENCE|NUEVA CONFERENCIA|ΠΡΟΣΘΕΣΕ ΝΕΑ ΣΥΝΔΙΑΛΕΞΗ||
ADD SCRIPT|AGREGUE LA ESCRITURA|ΠΡΟΣΘΕΣΤΕ ΤΟ ΧΕΙΡΟΓΡΑΦΟ||
VIEW SCRIPTS|ESCRITURAS DE LA VISIÓN|ΧΕΙΡΟΓΡΑΦΑ ΑΠΟΨΗΣ||
SCRIPTS LISTINGS|ESCRITURAS DE LA VISIÓN|ΧΕΙΡΟΓΡΑΦΑ ΑΠΟΨΗΣ||
ADDING NEW PHONE|CREANDO TELÉFONO|ΠΡΟΣΘΗΚΗ ΝΕΟΥ ΤΗΛΕΦΩΝΟΥ||
ADDING NEW SERVER|CREANDO SERVIDOR|ΠΡΟΣΘΗΚΗ ΝΕΟΥ ΔΙΑΚΟΜΙΣΤΗ||
ADDING NEW CONFERENCE|CREANDO CONFERENCIA|ΠΡΟΣΘΗΚΗ ΝΕΑΣ ΣΥΝΔΙΑΛΕΞΗΣ||
MODIFY PHONE|MODIFICAR EL TELÉFONO|ΤΡΟΠΟΠΟΙΗΣΕ ΤΗΛΕΦΩΝΟ||
MODIFY SERVER|MODIFICAR EL SERVIDOR|ΤΡΟΠΟΠΟΙΗΣΕ ΔΙΑΚΟΜΙΣΤΗ||
MODIFY CONFERENCE|MODIFICAR LA CONFERENCIA|ΤΡΟΠΟΠΟΙΗΣΕ ΣΥΝΔΙΑΛΕΞΗ||
MODIFYING PHONE|MODIFICANDO EL TELÉFONO|ΤΡΟΠΟΠΟΙΗΣΗ ΤΗΛΕΦΩΝΟΥ||
MODIFYING SERVER|MODIFICANDO EL SERVIDOR|ΤΡΟΠΟΠΟΙΗΣΗ ΔΙΑΚΟΜΙΣΤΗ||
MODIFYING CONFERENCE|MODIFICANDO LA CONFERENCIA|ΤΡΟΠΟΠΟΙΗΣΗ ΣΥΝΔΙΑΛΕΞΗΣ||
SEARCH PHONES|BUSCAR TELÉFONOS|ΑΝΑΖΗΤΗΣΗ ΤΗΛΕΦΩΝΩΝ||
SEARCH PHONES RESULTS|RESULTADO DE LA BÚSQUEDA DE TELÉFONOS|ΑΝΑΖΗΤΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΤΗΛΕΦΩΝΩΝ||
PHONE LIST|LISTA DE TELÉFONOS|ΛΙΣΤΑ ΤΗΛΕΦΩΝΟΥ||
SERVER LIST|LISTA DE SERVIDORES|ΛΙΣΤΑ ΔΙΑΚΟΜΙΣΤΗ||
CONFERENCE LIST|LISTA DE CONFERENCIAS|ΛΙΣΤΑ ΣΥΝΔΙΑΛΕΞΕΩΝ||
HELP|AYUDA|ΒΟΗΘΕΙΑ||
Click here for phone stats|Pinchar aquí­ para ver las estadísticas del teléfono|Πατήστε εδώ για στατιστικά τηλεφώνου||
REMOTE INBOUND: Main|ENTRANTES REMOTOS: Principal|ΑΠΟΜΑΚΡΥΣΜΕΝΟ ΕΙΣΕΡΧΟΜΕΝΟ: Κύριο||
REMOTE INBOUND: Popup|SALIENTES REMOTOS: Popup|ΑΠΟΜΑΚΡΥΣΜΕΝΟ ΕΙΣΕΡΧΟΜΕΝΟ: Υπερεμφανιζόμενο Παραθύρο||
CALLS SENT TO|LLAMADAS REALIZADAS A|ΚΛΗΣΕΙΣ ΣΤΑΛΘΗΚΑΝ ΠΡΟΣ||
Phone Stats|Estadísticas Del Teléfono|Στατιστικά Τηλεφώνου||
CALL TIME AND CHANNELS|TIEMPO DE LLAMADA Y CANALES|ΧΡΟΝΟΣ ΟΜΙΛΙΑΣ ΚΑΙ ΚΑΝΑΛΙΑ||
CHANNEL GROUP|GRUPO DE CANALES|ΚΑΝΑΛΙ ΟΜΑΔΑΣ||
HOURS:MINUTES|HORAS:MINUTOS|ΩΡΕΣ:ΛΕΠΤΑ||
TOTAL CALLS|LLAMADAS TOTALES|ΣΥΝΟΛΙΚΕΣ ΚΛΗΣΕΙΣ||
>NUMBER|>NÚMERO|>ΑΡΙΘΜΟΣ||
DATE<| FECHA<| ΗΜΕΡΑ<||
Close this window|Cierre esta ventana|Κλείσε αυτό το παράθυρο||
Inbound Calls Stats|Estadística de Llamadas Entrantes|Στατιστικά Εισερχομένων Κλησεων||
Add New User|Añadir un Usuario|Πρόσθετε Νέο Χρήστη||
Add New Campaign|Añadir una Campaña|Πρόσθετε Νέα Εκστρατεία||
Add New List|Añadir una Lista|Πρόσθετε Νέα Λίστα||
Add New In-Group|Añadir un Grupo-Entrantes|Πρόσθετε Νέα Εισ-Ομάδα||
Add New Remote Agents|Añadir Agentes Remotos|Πρόσθετε Νέους Απομακρυσμένους Χρήστες||
Add New Users Group|Añadir un Grupo De Usuarios|Πρόσθετε Νέα Ομάδα Χρηστών||
Add New Script|Agregue La Nueva Escritura|Προσθέστε το νέο χειρόγραφο||
New User Addition|Nueva Adición De Usuario|Προσθήκη Νέου Χρήστη||
New Campaign Addition|Nueva Adición De la Campaña|Προσθήκη Νέας Εκστρατείας||
New Campaign Status Addition|Nueva Adición Del Estado De la Campaña|Προσθήκη Νέας Κατάστασης Εκστρατείας||
New Campaign HotKey Addition|Nueva Adición De Tecla De Acceso Directo De la Campaña|Προσθήκη Νέου Κλειδιού Εκστρατείας||
New List Addition|Nueva Adición De la Lista|Προσθήκη Νέας Λίστας||
New In-Group Addition|Nueva Adición Del Grupo de Entrantes|Προσθήκη Νέας Εισ-Ομάδας||
New Remote Agents Addition|Nueva Adición de Agentes Remotos|Προσθήκη Νέων Απομακρυσμένων Χρηστών||
New Users Group Addition|Nueva Adición Del Grupo De Usuarios|Προσθήκη Νέας Ομάδας Χρηστών||
New Script Addition|Nueva Adición De la Escritura|Νέα προσθήκη χειρογράφων||
Modify User|Modificar Usuario|Τροποποίηση Χρήστη||
Modify Campaign - Basic View|Modificar Campaña - Vista Básica|Τροποποίηση Εκστρατείας - Βασική Επισκόπηση||
Modify Campaign|Modifcar Campaña|Τροποποίηση Εκστρατείας||
Modify List|Modificar Lista|Τροποποίηση Λίστας||
Modify In-Group|Modificar In-Group|Τροποποίηση Εισ-Ομάδων||
Modify Remote Agents|Modificar Agentes Remotos|Τροποποίηση Απομακρυσμένων Χρηστών||
Modify Users Groups|Modificar Grupos De Usuarios|Τροποποίηση Ομάδων Χρηστών||
Modify Script|Modifique La Escritura|Τροποποιήστε το χειρόγραφο||
Welcome|Bienvenido|Καλωσήρθες||
Campaigns|Campañas|Εκστρατείες||
Lists|Listas|Λίστες||
In-Groups|In-Groups|Εισ-Ομάδες||
Remote Agents|Agentes Remotos|Απομακρυσμένοι Χρήστες||
User Groups|Grupos De Usuario|Ομάδες Χρήστη||
Search Form|Formulario De Búsqueda|Φόρμα Αναζήτησης||
Search Results|RESULTADOS DE LA BÚSQUEDA|Αποτελέσματα Αναζήτησης||
VICIDIAL ADMIN|VICIDIAL ADMIN|VICIDIAL ΔΙΑΧ||
TABLE| TABLA| ΠΙΝΑΚΑΣ||
First Name|Nombre|Ονομα||
Middle Initial|Inicial Media|Μεσαίο Αρχικό||
Last Name|Apellidos|Επίθετο||
Address Line 1|Dirección, línea 1|1 Γραμμή Διεύθυνσης||
Address Line 2|Dirección, línea 2|2 Γραμμή Διεύθυνσης||
Address Line 3|Dirección, línea 3|3 Γραμμή Διεύθυνσης||
City|Ciudad|Πόλη||
State - limited to 2 characters|Estado - limitado a 2 caracteres|Κράτος - περιορισμός σε 2 χαρακτήρες||
Province|Provincia|Επαρχία||
Postal Code|Código Postal|Ταχ.Κωδ.||
Country|País|Χώρα||
Gender|Sexo|Φύλον||
Date of Birth|Fecha de nacimiento|Ημερ. Γέννησης||
Alternate Phone Number|Número De Teléfono Alternativo|Εναλ. Αριθμός Τηλ.||
Email Address|Dirección Email|Διεύθυνση Ηλεκτρ.Ταχυδρομείου||
Security Phrase|Frase De Seguridad|Φράση Ασφαλείας||
Comments|Comentarios|Σχόλια||
THE END|EL FIN|ΤΕΛΟΣ||
Logout|Salir|ΑΠΟΣΥΝΔΕΣΗ||
LIST USERS|MOSTRAR USUARIOS|ΛΙΣΤΑ ΧΡΗΣΤΩΝ||
ADD A NEW USER|NUEVO USUARIO |ΠΡΟΣΘΗΚΗ ΝΕΟΥ ΧΡΗΣΤΗ||
SEARCH FOR A USER|BUSCAR UN USUARIO|ΑΝΑΖΗΤΗΣΗ ΧΡΗΣΤΗ||
ADD USER GROUP|NUEVO GRUPO DE USUARIO|ΠΡΟΣΘΗΚΗ ΟΜΑΔΑΣ ΧΡΗΣΤΗ||
LIST USER GROUPS|MOSTRAR GRUPOS DE USUARIO|ΛΙΣΤΑ ΟΜΑΔΩΝ ΧΡΗΣΤΗ||
ADD CAMPAIGN|NUEVA CAMPAÑA |ΠΡΟΣΘΗΚΗ ΕΚΣΤΡΑΤΕΙΑΣ||
LIST CAMPAIGNS|MOSTRAR CAMPAÑAS|ΛΙΣΤΑΣ ΕΚΣΤΡΑΤΕΙΩΝ||
SHOW LISTS|MOSTRAR LISTAS|ΕΜΦΑΝΙΣΗ ΛΙΣΤΩΝ||
ADD NEW LIST|NUEVA LISTA |ΠΡΟΣΘΗΚΗ ΝΕΑΣ ΛΙΣΤΑΣ||
LOAD NEW LEADS|CARGAR LEADS|ΦΌΡΤΙΣΗ ΝΕΩΝ ΚΑΘΟΔΗΓΗΤΩΝ||
SHOW IN-GROUPS|MOSTRAR IN-GROUPS|ΕΜΦΑΝΙΣΗ ΕΙΣΕΡΧΟΜΕΝΩΝ ΟΜΑΔΩΝ||
ADD NEW IN-GROUP|NUEVO IN-GROUP|ΠΡΟΣΘΗΚΗ ΝΈΑΣ ΕΙΣΕΡΜΟΜΕΝΗΣ ΟΜΑΔΑΣ||
SHOW REMOTE AGENTS|MOSTRAR LOS AGENTES REMOTOS|ΕΜΦΑΝΙΣΗ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΡΗΣΤΩΝ||
ADD NEW REMOTE AGENTS|NUEVO AGENTE REMOTO|ΠΡΟΣΘΗΚΗ ΝΕΩΝ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΡΗΣΤΩΝ||
SERVER STATS|ESTADÍSTICAS DEL SERVIDOR|ΣΤΑΤΙΣΤΙΚΑ ΔΙΑΚΟΜΙΣΤΗ||
PARK REPORT|INFORME DE PARKING|ΑΝΑΦΟΡΑ ΣΤΑΘΜΕΥΣΗΣ||
VDAD REPORT|INFORME DE VDAD|ΑΝΑΦΟΡΑ VDAD||
CLOSER REPORT|INFORME CLOSER|ΑΝΑΦΟΡΑ CLOSER||
SEARCH FOR A LEAD|BÚSCAR UN LEAD|ΑΝΑΖΗΤΗΣΗ ΚΑΘΟΔΗΓΗΣΗΣ||
GROUP HOURLY|GRUPO POR HORA|Ωριαία Ομάδα||
User Number|NÚmero De Usuario|Αριθμός Χρήστη||
Full Name|Nombre Completo|Πλήρες Ονομα||
User Level|Nivel Del Usuario|Επίπεδο Χρήστη||
User Group|Grupo Del Usuario|Ομάδα Χρήστη||
ADD A NEW CAMPAIGN|NUEVA CAMPAÑA|ΠΡΟΣΘΗΚΗ ΝΕΑΣ ΕΚΣΤΡΑΤΕΙΑΣ||
ADD A NEW INBOUND GROUP|NUEVO GRUPO DE ENTRADA|ΠΡΟΣΘΗΚΗ ΝΈΑΣ ΕΙΣΕΡΧΟΜΕΝΗΣ ΟΜΑΔΑΣ||
ADD NEW USERS GROUP|NUEVO GRUPO DE USUARIOS|ΠΡΟΣΘΗΚΗ ΝΕΑ ΟΜΑΔΑ ΧΡΗΣΤΩΝ||
Campaign ID|ID De la Campaña|ID Εκστρατείας||
Campaign Name|Nombre de la Campaña|Ονομα Εκστρατείας||
Park Extension|Extensión Del Parking|Τηλ. σύνδεση Στάθμευσης||
Park Filename|Nombre de fichero Del Parking|Ονομα Αρχείου Στάθμευσης||
Web Form|Formulario Web|Ιστο-σελίδα||
Allow Closers|Permitir Closers|Επιτρέπω Τους Closers||
Hopper Level|Nivel Del Hopper|ΕΠΙΠΕΔΟ Hopper||
Auto Dial Level|Nivel del Auto-Dial|ΕΠΙΠΕΔΟ ΑΥΤΟΜΑΤΗΣ ΚΛΗΣΗΣ||
Next Agent Call|Llamar al Siguiente Agente|Επόμενη Κλήση Χρήστη||
Local Call Time|Franja horaria de llamada|Χρόνος Τοπικής Κλήσης||
Voicemail|Buzón de Voz|ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ||
SUBMIT|ENVIAR|ΕΠΙΒΕΒΑΙΩΣΗ||
List ID|ID De la Lista|ID Λίστας||
List Name|Nombre De la Lista|Ονομα Λίστας||
Campaign|Campaña|Εκστρατείας||
Group ID|ID De Grupo|ID Ομάδας||
Group Name|Nombre De Grupo|Ονομα Ομάδας||
Group Color|Color Del Grupo|Χρώμα Ομάδας||
Fronter Display|Mostrar Fronter|Οθόνη Μπροστινού||
User ID Start|Comienzo Del ID del usuario|ID Χρήστη Ξεκίνημα||
Number of Lines|Número de líneas|Αριθμός Γραμμών||
External Extension|Extensión Externa|Εξωτερική Τηλ. Σύνδεση||
Inbound Groups|Grupos De entrada|Εισερχόμενες Ομάδες||
Group: |Grupo: |Ομάδα:||
Description: |Descripción: |Περιγραφή:||
USER ADDED|EL USUARIOAÑADIDO|ΧΡΗΣΤΗΣ ΠΡΟΣΤΕΘΗΚΕ||
CAMPAIGN ADDED|CAMPAÑA AÑADIDA|ΚΣΤΡΑΤΕΙΑ ΠΡΟΣΤΕΘΗΚΕ||
CAMPAIGN STATUS ADDED|ESTADO DE LA CAMPAÑA AÑADIDA|ΚΑΤΑΣΤΑΣΗ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΕΘΗΚΕ||
CAMPAIGN HOTKEY ADDED|ACCESO DIRECTO A LA CAMPAÑA AÑADIDO|ΚΛΕΙΔΙ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΕΘΗΚΕ||
LIST ADDED|LISTA AÑADIDA|ΛΙΣΤΑ ΠΡΟΣΤΕΘΗΚΕ||
GROUP ADDED|GRUPO AÑADIDO|ΟΜΑΔΑ ΠΡΟΣΤΕΘΗΚΕ||
REMOTE AGENTS ADDED|AGENTES REMOTO AÑADIDO|ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΡΗΣΤΕΣ ΠΡΟΣΤΕΘΗΚΑΝ||
USER GROUP ADDED|GRUPO DE USUARIO AÑADIDO|ΟΜΑΔΑ ΧΡΗΣΤΗ ΠΡΟΣΤΕΘΗΚΕ||
USER MODIFIED|USUARIO MODIFICADO|ΧΡΗΣΤΗΣ ΤΡΟΠΟΠΟΙΗΘΗΚΕ||
CAMPAIGN MODIFIED|CAMPAÑA MODIFICADA|ΕΣΤΡΑΤΕΙΑ ΤΡΟΠΟΠΟΙΗΘΗΚΕ||
GROUP MODIFIED|GRUPO MODIFICADO|ΟΜΑΔΑ ΤΡΟΠΟΠΟΙΗΘΗΚΕ||
CAMPAIGN MODIFIED|CAMPAÑA MODIFICADA|ΕΚΣΤΡΑΤΕΙΑ ΤΡΟΠΟΠΟΙΗΘΗΚΕ||
LIST MODIFIED|LISTA MODIFICADA|ΛΙΣΤΑ ΤΡΟΠΟΠΟΙΗΘΗΚΕ||
USER GROUP MODIFIED|GRUPO DE USUARIO MODIFICADO|ΟΜΑΔΑ ΧΡΗΣΤΗ ΤΡΟΠΟΠΟΙΗΘΗΚΕ||
RESETTING LIST-CALLED-STATUS|REAJUSTANDO LA LISTA - LLAMADA - ESTADO|ΕΠΑΝΑΦΟΡΑ ΚΑΤΑΣΤΑΣΗΣ ΚΛΗΣΗΣ ΛΙΣΤΑΣ||
Dial status |Estado del dial |Κατάσταση κλήσης||
List Order|Orden De la Lista|Σειρά Λίστας||
Hopper Level|Nivel Del Hopper|Επίπεδο Hopper||
Force Reset of Hopper|Forzar el Reinicio del Hopper|Αναγκαστική Επαναφορά του Hopper||
Dial Timeout|Tiempo de espera Del Dial|Κλήση εκτός χρόνου||
Dial Prefix|Prefijo al marcar|Πρόθεμα Κλήσης||
Campaign CallerID|CallerID de la Campaña|CallerID Εκστρατείας||
Campaign VDAD exten|Exten VDAD de La campaña|Εκστρατείας VDAD εσωτ.σύνδεση||
Campaign Rec exten|Extensión de Rec de la campaña|Επέκταση εκστρατείας REC||
Campaign Recording|Grabación De la Campaña|Καταγραφή εκστρατείας||
Campaign Rec Filename|Nombre de fichero De Rec De la Campaña|Όνομα αρχείου εκστρατείας REC||
LISTS WITHIN THIS CAMPAIGN|LISTAS DENTRO DE ESTA CAMPAÑA|ΛΙΣΤΕΣ ΣΤΗΝ ΕΚΣΤΡΑΤΕΙΑ||
LIST ID|ID DE LA LISTA|ID ΛΙΣΤΑΣ||
LIST NAME|NOMBRE DE LA LISTA|ΟΝΟΜΑ ΛΙΣΤΑΣ||
>ACTIVE<|>ACTIVO<|>ΕΝΕΡΓΗ<||
This campaign has |Esta campaña tiene |Αυτή η εκστρατεία έχει||
active lists and |listas activas y |ενεργές λίστες και||
inactive lists|listas inactivas|Μη ενεργές λίστες||
leads to be dialed in those lists|Leads para ser llamados en estas listas|καθοδηγητές που καλούντε στις λίστες||
leads in the dial hopper|Leads en el Hopper|>καθοδηγητές στον hopper κλήσεων<||
>STATUS<|>ESTADO<|>ΚΑΤΑΣΤΑΣΗ<||
>DESCRIPTION<|>DESCRIPCIÓN<|>ΠΕΡΙΓΡΑΦΗ<||
>SELECTABLE<|>SELECCIONABLE<|>ΕΠΙΛΕΞΙΜΟ<||
>DELETE<|>ELIMINAR<|>ΔΙΑΓΡΑΦΗ<||
ADD NEW CUSTOM CAMPAIGN STATUS|AGREGAR ESTADO PERSONALIZADO A LA CAMPAÑA|ΠΡΟΣΘΗΚΗ ΝΕΑΣ ΠΡΟΣΑΡΜΟΣΜΕΝΗΣ ΚΑΤΑΣΤΑΣΗΣ ΣΤΗΝ ΕΚΣΤΡΑΤΕΙΑ||
Selectable: |Seleccionable: |Επιλέξιμο:||
value=ADD|value=ADD|value=ΠΡΟΣΘΗΚΗ||
CUSTOM HOTKEYS WITHIN THIS CAMPAIGN|PERSONALIZAR ACCEDOS DIRECTOS PARA ESTA CAMPAÑA|ΠΡΟΣΑΡΜΟΣΜΕΝΑ ΚΛΕΙΔΙΑ ΣΤΗΝ ΕΚΣΤΡΑΤΕΙΑ||
>HOTKEY<|>ACCESO DIRECTO<|>ΚΛΕΙΔΙ<||
ADD NEW CUSTOM CAMPAIGN HOTKEY|AÑADIR ACCESO DIRECTO A LA CAMPAÑA|ΠΡΟΣΘΗΚΗ ΝΕΟΥ ΠΡΟΣΑΡΜΟΣΜΕΝΟΥ ΚΛΕΙΔΙΟΥ ΕΚΣΤΡΑΤΕΙΑΣ||
Hotkey: |Acceso Directo:|Κλειδί:||
Basic View|Vista Básica|Βασική Επισκόπηση||
Detail View|Vista Detallada|Αναλυτική Επισκόπηση||
MODIFY A LISTS RECORD|MODIFICAR UN REGISTRO DE LAS LISTAS|ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΛΙΣΤΑΣ||
Reset Lead-Called-Status for this list|Reiniciar el Lead-Called-Status para esta lista|ΕΠΑΝΑΦΟΡΑ ΚΑΤΑΣΤΑΣΗΣ ΚΛΗΣΗΣ ΚΑΘΟΔΗΓΗΣΗΣ ΓΙΑ ΤΗΝ ΛΙΣΤΑ||
STATUSES WITHIN THIS LIST|ESTADOS DENTRO DE ESTA LISTA|ΚΑΤΑΣΤΑΣΕΙΣ ΣΤΗΝ ΛΙΣΤΑ||
>CALLED<|>LLAMADO<|>ΚΛΗΘΕΝΤΑ<||
>NOT CALLED<|>NO LLAMADO<|>ΜΗ ΚΛΗΘΕΝΤΑ<||
>SUBTOTALS<|>SUBTOTALES<|>ΥΠΟΣΥΝΟΛΑ<||
>SUBTOTAL<|>SUBTOTAL<|>ΥΠΟΣΥΝΟΛΟ<||
TIME ZONES WITHIN THIS LIST|ZONAS DE TIEMPO DENTRO DE ESTA LISTA|ΖΩΝΕΣ ΩΡΑΣ ΣΤΗΝ ΛΙΣΤΑ||
GMT OFFSET NOW|DESPLAZAMIENTO GMT AHORA|GMT OFFSET||
local time|tiempo local|τοπικός χρόνος||
>TOTAL<|>TOTAL<|>ΣΥΝΟΛΙΚΑ<||
CALLED COUNTS WITHIN THIS LIST|LLAMADAS REALIZADAS DENTRO DE ESTA LISTA|ΜΕΤΡΗΣΗ ΚΛΗΣΕΩΝ ΣΤΗΝ ΛΙΣΤΑ||
MODIFY A GROUPS RECORD|MODIFICAR UN REGISTRO DE LOS GRUPOS|ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΟΜΑΔΩΝ||
MODIFY A REMOTE AGENTS ENTRY|MODIFICAR UNA ENTRADA DE LOS AGENTES REMOTOS|ΤΡΟΠΟΠΟΙΗΣΗ ΚΑΤΑΧΩΡΗΣΗΣ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΡΗΣΤΩΝ||
numbers only|Solamente números|μόνο αριθμοί||
dialplan number dialed to reach agents|número del dialplan para alcanzar agentes|||
MODIFY A USERS GROUP ENTRY|MODIFICAR UNA ENTRADA EN LOS GRUPOS DE USUARIOS|ΤΡΟΠΟΠΟΙΗΣΗ ΚΑΤΑΧΩΡΗΣΗΣ ΟΜΑΔΑΣ ΧΡΗΣΤΩΝ||
no spaces or punctuation|sin espacios o signos de puntuación|όχι κενά ή στίξη||
description of group|Descripción del grupo|περιγραφή ομάδας||
SEARCH FOR A USER|BUSCAR UN USUARIO|ΑΝΑΖΗΤΗΣΗ ΧΡΗΣΤΗ||
SEARCH RESULTS|RESULTADOS DE LA BÚSQUEDA|ΑΠΟΤΕΛΕΣΜΑΤΑ ΑΝΑΖΗΤΗΣΗΣ||
>STATS<|>ESTADÍSTICAS<|>ΣΤΑΤΙΣΤΙΚΑ<||
USER LISTINGS|USUARIOS|ΛΙΣΤΕΣ ΧΡΗΣΤΗ||
CAMPAIGN LISTINGS|CAMPAÑAS|ΕΝΤΑΓΜΕΝΕΣ ΕΚΣΤΡΑΤΕΙΕΣ||
LIST LISTINGS|LISTAS|ΕΝΤΑΓΜΕΝΕΣ ΛΙΣΤΕΣ||
INBOUND GROUP LISTINGS|GRUPOS DE ENTRADA |ΕΝΤΑΓΜΕΝΕΣ ΕΙΣΕΡΧΟΜΕΝΕΣ ΟΜΑΔΕΣ||
REMOTE AGENTS LISTINGS|AGENTES REMOTOS|ΕΝΤΑΓΜΕΝΟΙ ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΡΗΣΤΕΣ||
USER GROUPS LISTINGS|GRUPOS DE USUARIO |ΕΝΤΑΓΜΕΝΕΣ ΟΜΑΔΕΣ ΧΡΗΣΤΗ||
script runtime|Script runtime|διαδικασία που τρέχει||
Hopper List|Lista De Hopper|Λίστα Hopper||
Live Current Hopper List|Live Current Hopper List|Ενεργή Λίστα στον Hopper||
Total leads in hopper right now|Total de Leads en el hopper ahora mismo|Συνολικά καθοδηγητές στον hopper τώρα:||
Server Stats|ESTADÍSTICAS DEL SERVIDOR|Στατιστικά Διακομιστή||
Total Calls placed from this Campaign: |Llamadas dentro de esta campaña|Συνολικά κλήσεις που τοποθετήθηκαν από την Εκστρατεία:||
Average Call Length for all Calls in seconds:|Longitud media para las llamadas en segundos:|Μέσος όρος σε δευτερόλεπτα για όλες τις κλήσεις:||
Total DROP Calls: |Total DROP Calls:|Συνολικά DROP κλήσεις:||
Average Length for DROP Calls in seconds: |Longitud media para las llamadas DROP en segundos: |Μέσος όρος σε δευτερόλεπτα για DROP κλήσεις:||
Total NA calls -Busy,Disconnect,BTvoicemail: |Llamadas sin Respuesta - ocupado, desconexión,..: |Συνολικά ΝΑ κλήσεις -Busy,Disconnect,BTvoicemail:||
Average Call Length for NA Calls in seconds: |Longitud media para las Llamadas sin Respuesta en segundos: |Μέσος όρος σε δευτερόλεπτα για ΝΑ κλήσεις:||
---------- DROPS|---------- DROPS|---------- DROPS||
AUTO-DIAL NO ANSWERS| AUTO-DIAL SIN RESPUESTA| ΜΗ ΑΠΑΝΤΗΜΕΝΕΣ ΑΥΤΟΜΑΤΕΣ ΚΛΗΣΕΙΣ||
---------- USER STATS|---------- ESTADÍSTICAS DEL USUARIO|---------- ΣΤΑΤΙΣΤΙΚΑ ΧΡΗΣΤΗ||
---------- TIME STATS|---------- ESTADÍSTICAS DEL TIEMPO|---------- ΣΤΑΤΙΣΤΙΚΑ ΧΡΟΝΟΥ||
USER |USUARIO |ΧΡΗΣΤΗΣ ||
Agents Time On Calls |Tiempo de los Agentes En Llamadas|Χρόνος χρηστών σε κλήσεις||
agents logged in on server|agentes identificados en el servidor|Χρήστες συνδεμένοι στον διακομιστή||
Paused agents|Agentes detenidos brevemente|Χρήστες σε παύση||
5 minutes or more on call|Llamadas de 5 minutos o más|5 λεπτά ή παραπάνω σε κλήση||
Over 10 minutes on call|Sobre 10 minutos en llamada|Πάνω από 10 λεπτά σε κλήση||
NO AGENTS ON CALLS |AGENTES SIN LLAMADAS| ΚΑΝΕΝΑΣ ΧΡΗΣΤΗΣ ΣΕ ΚΛΗΣΕΙΣ||
calls being placed on server|llamadas en el servidor|κλήσεις που τοποθετήθηκαν στον διακομιστή||
LIVE CALL WAITING|LLAMADAS ACTUALES EN ESPERA|ΑΝΑΜΟΝΗ ΕΝΕΡΓΗΣ ΚΛΗΣΗΣ||
NO LIVE CALLS WAITING |LLAMADAS EN ESPERA|ΔΕΝ ΥΠΑΡΧΟΥΝ ΕΝΕΡΓΕΣ ΚΛΗΣΕΙΣ ΣΕ ΑΝΑΜΟΝΗ||
START OVER|RECARGAR|ΞΕΚΙΝΑ||
Lead Loader Module|Módulo Cargador de Leads|Υπομονάδα φόρτισης καθοδηγητών||
Current file status|Estado actual del archivo|Κατάσταση αρχείου||
Load leads from this file|Cargar Leads de este archivo|Φόρτιση καθοδηγητών από αυτό το αρχείο||
Answering Machine Message|Mensaje del contestador automático|Μήνυμα αυτόματων τηλεφωνητών||
Processing |Procesando|Επεξεργασία||
TALK TIME AND STATUS|TIEMPO Y ESTADO DE CONVERSACIÓN|ΧΡΟΝΟΣ ΟΜΙΛΙΑΣ ΚΑΙ ΚΑΤΑΣΤΑΣΗ||
>COUNT<|>CUENTA<|>ΚΑΤΑΜΕΤΡΗΣΗ<||
>HOURS:MINUTES<|>HORAS:MINUTOS<|>ΩΡΕΣ:ΛΕΠΤΑ<||
TOTAL CALLS |LLAMADAS TOTALES |ΣΥΝΟΛΙΚΕΣ ΚΛΗΣΕΙΣ||
LOGIN/LOGOUT TIME|TIEMPO LOGIN/LOGOUT| ΧΡΟΝΟΣ ΣYΝΔΕΣΗΣ/ΑΠΟΣΥΝΔΕΣΗΣ||
>EVENT <|>EVENTO<| >ΣΥΜΒΑΝ<||
> CAMPAIGN<|> CAMPAÑA<|>ΕΚΣΤΡΑΤΕΙΑ<||
LAST 50 CALLS|ÚLTIMAS 50 LLAMADAS|Τελευταίες 50 Κλήσεις||
VICIDIAL REMOTE: Call Disposition|REMOTE VICIDIAL: Disposición De la Llamada|Απομακρυσμένο VICIDIAL: Τερματισμός Κλήσης||
Call has been dispositioned|La llamada ha sido dispositioned|Η κλήση έχει τερματίσει||
Close This Window|Cierre Esta Ventana|Κλείστε αυτό το Παράθυρο||
Call information|Información de la llamada|Πληροφορίες Κλήσης||
lead lookup FAILED for lead_id|las operaciones de búsqueda del plomo FALLARON para el lead_id|ΑΠΟΤΥΧΙΑ ψαξίματος καθοδήγησης για lead_id||
DISPO CALL|DISPO CALL|Τερματισμό Κλήσης||
>Address |>Dirección |Διεύθυνση||
>City |>Ciudad |Πόλη||
>State:|>Estado:|Κράτος||
Postal Code:| Código Postal:|Ταχ.Κωδ.||
>Province |>Provincia|Επαρχία||
>Country |>País |Χώρα||
>Alt Phone |>Alt Phone |Εναλ/κό Τηλέφωνο||
>Email |>Email |Ηλεκτρονικό ταχυδρομείο||
>Security |>Seguridad|Ασφάλεια||
>Comments |>Comentarios |Σχόλια||
>Disposition:|>Disposición:|>Τερματισμός||
Group Hourly Stats|Stats Cada hora Del Grupo|||
TSR HOUR COUNTS|CUENTAS DE HORAS DE TSR|ΜΕΤΡΗΣΗ ΩΡΩΝ TSR||
Lead Search|Buscar Lead|Αναζήτηση Καθοδήγησης||
Lead Lookup|Operaciones de búsqueda del Lead|Ψάξιμο Καθοδήγησης||
Please enter a:|Por favor, Introduzca un:|Παρακαλώ καταχωρήστε:||
a Home Phone Number:|un número de teléfono de casa:|ένας αριθμός τηλεφώνου σπιτιού||
vendor lead code|código del vendedor del Lead|αυτόματος κωδικός καθοδήγησης||
a lead ID:|ID del Lead:|ID καθοδήγησης||
>NEW SEARCH<|>NUEVA BÚSQUEDA<|>ΝΕΑ ΑΝΑΖΗΤΗΣΗ<||
Lead record modification|Registro del Lead modificado| Τροποποίηση καθοδήγησης||
information modified|Información modificada|Οι πληροφορίες τροποποιήθηκαν||
CALLS TO THIS LEAD|LLAMADAS A ESTE LEAD|Κλήσεις για αυτή την καθοδήγηση||
VDAD Closer Stats|Estadísticas de VDAD Closer|Στατιστικά VDAD Closer||
Auto-dial Closer Stats|Estadísticas de Auto-dial en CLOSER|Στατιστικά αυτόματης κλήσης Closer||
VICIDIAL REMOTE AGENTS|VICIDIAL, AGENTES REMOTOS| VICIDIAL ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΡΗΣΤΕΣ||
INBOUND STATS|ESTADÍSTICAS DE ENTRADA|ΣΤΑΤΙΣΤΙΚΑ ΕΙΣΕΡΧΟΜΕΝΩΝ||
REMOTE AGENTS ERROR - Please go back and look at the data you entered|ERROR AGENTES REMOTOS Por favor, vuelva atrás y compruebe los datos que introdujo|ΛΑΘΟΣ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΡΗΣΤΩΝ||
- WAITING - |- ESPERANDO -|- ΑΝΑΜΟΝΗ -||
Remote Agent inbound stats |Stats de entrada del agente alejado|Στατιστικά εισερχομένων απομακρυσμένου χρήστη||
Total calls taken |Llamadas totales tomadas |Συνολικές κλήσεις που διακομίστηκαν||
Total talk time on |Tiempo total de conversación|Συνολικός χρόνος ομιλίας σε||
Call list for |Lista la llamada para |Λίστα Κλήσεων για||
NO CALLS ON THIS DAY |NINGUNA LLAMADA PARA HOY|ΔΕΝ ΥΠΑΡΧΟΥΝ ΚΛΗΣΕΙΣ ΣΕ ΑΥΤΗ ΤΗΝ ΗΜΕΡΑ||
Scripts|Escrituras|Χειρόγραφα||
Script:|Escritura:|Χειρόγραφο:||
Get Call Launch|Consiga El Lanzamiento De la Llamada|Πάρτε την έναρξη κλήσης||
not used currently|no utilizado actualmente|μην χρησιμοποιημένος αυτήν την περίοδο||
VERSION|VERSIÓN|ΕΚΔΟΣΗ||
BUILD|CONSTRUCCION|ΔΗΜΙΟΥΡΓΙΑ||
REPORTS|INFORMES|ΕΚΘΕΣΕΙΣ||
USERS|USUARIOS|ΧΡΗΣΤΩΝ||
CAMPAIGNS|CAMPAÑAS|ΕΚΣΤΡΑΤΕΙΩΝ||
LISTS|LISTAS|ΛΙΣΤΩΝ||
SCRIPTS|ESCRITURAS|ΧΕΙΡΟΓΡΑΦΑ||
FILTERS|FILTROS|ΦΙΛΤΡΑ||
IN-GROUPS|EN-GROUPOS|ΕΙΣΕΡΧΟΜΕΝΩΝ ΟΜΑΔΩΝ||
USER GROUPS|GRUPOS DE USUARIO|ΟΜΑΔΩΝ ΧΡΗΣΤΗ||
REMOTE AGENTS|AGENTES REMOTOS|ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΡΗΣΤΕΣ||
Column|Columna|Στήλη||
PERFORMANCE| FUNCIONAMIENTO| ΑΠΟΔΟΣΗ||
AGENT |AGENTE |ΠΡΑΚΤΟΡΑΣ ||
SERVER |SERVIDOR |ΚΕΝΤΡΙΚΟΣΥΠΟΛΟΓΙΣΤΉΣ ||
### END translation phrases through 1.1.11 release ###
@@ -0,0 +1,8 @@
?Search Existing Leads
|Suchbestehende Leitungen|
This option if checked will attempt to find the phone number in the system before inserting it as a new lead
|Diese Wahl, wenn sie ΓΌberprΓΌft wird, versucht, die Telefonnummer im|
seconds remaining in wrapup
|Sekunden restlich im wrapup|
Call Wrapup:
|Anruf Wrapup:|
@@ -0,0 +1,216 @@
?Drop Call Seconds -<\/B> The number of seconds from the time the customer line is picked up until the call is considered a DROP, only applies to outbound calls
|Ξ”Ξ΅Ο…Ο„Ξ΅ΟΟŒΞ»Ξ΅Ο€Ο„Ξ± Ο€ΟΟŒΟƒΞΊΞ»Ξ·ΟƒΞ·Ο‚ Ο€Ο„ΟŽΟƒΞ·Ο‚ - ΞΏ Ξ±ΟΞΉΞΈΞΌΟŒΟ‚ δΡυτΡρολέπτων Ξ±Ο€ΟŒ το|
Safe Harbor Message -<\/B> If set to Y will play a message to customer after the Drop Call Seconds timeout is reached without being transferred to an agent. This setting will override sending to a voicemail box if this is set to Y
|Ασφαλές λιμΡνικό ΞΌΞΞ½Ο…ΞΌΞ± - Ράν θέστΡ το Ξ₯ ΞΈΞ± παίξΡι Ξ­Ξ½Ξ± ΞΌΞΞ½Ο…ΞΌΞ±|
Safe Harbor Exten -<\/B> This is the dialplan extension that the desired Safe Harbor audio file is located at on your server
|Ασφαλές λιμάνι Exten - Ξ±Ο…Ο„ΟŒ Ρίναι Ξ· dialplan Ρπέκταση στην|
Drop Message -<\/B> If set to Y will play a message to customer after the Drop Call Seconds timeout is reached without being transferred to an agent. This setting will override sending to a voicemail box if this is set to Y
|ΜΞΞ½Ο…ΞΌΞ± Ο€Ο„ΟŽΟƒΞ·Ο‚ - Ράν θέστΡ το Ξ₯ ΞΈΞ± παίξΡι Ξ­Ξ½Ξ± ΞΌΞΞ½Ο…ΞΌΞ± στον|
Drop Exten -<\/B> This is the dialplan extension that the desired Dropped call audio file is located at on your server
|Ξ Ο„ΟŽΟƒΞ· Exten - Ξ±Ο…Ο„ΟŒ Ρίναι Ξ· dialplan Ρπέκταση στην οποία το|
Call Time ID -<\/B> This is the short name of a Vicidial Call Time Definition. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 10 characters, minimum of 2 characters
|Ξ§ΟΞΏΞ½ΞΉΞΊΞ Ο„Ξ±Ο…Ο„ΟŒΟ„Ξ·Ο„Ξ± ΞΊΞ»Ξσης - Ξ±Ο…Ο„ΟŒ Ρίναι το σύντομο όνομα Ξ΅Ξ½ΟŒΟ‚|
Call Time Name -<\/B> This is a more descriptive name of the Call Time Definition. This is a short summary of the Call Time definition. max 30 characters, minimum of 2 characters
|Χρονικό όνομα ΞΊΞ»Ξσης - Ξ±Ο…Ο„ΟŒ Ρίναι Ξ­Ξ½Ξ± Ο€Ξ΅ΟΞΉΞ³ΟΞ±Ο†ΞΉΞΊΟŒΟ„Ξ΅ΟΞΏ όνομα|
Call Time Comments -<\/B> This is where you can place comments for a Vicidial Call Time Definition such as -10am to 4pm with extra call state restrictions-. max 255 characters
|Χρονικά ΟƒΟ‡ΟŒΞ»ΞΉΞ± ΞΊΞ»Ξσης - Ξ±Ο…Ο„ΟŒ Ρίναι ΟŒΟ€ΞΏΟ… μπορΡίτΡ Ξ½Ξ±|
Default Start and Stop Times -<\/B> This is the default time that calling will be allowed to be started or stopped within this call time definition if the day-of-the-week start time is not defined. 0 is midnight. To prevent calling completely set this field to 2400 and set the Default Stop time to 2400. To allow calling 24 hours a day set the start time to 0 and the stop time to 2400
|Χρόνοι έναρξης ΞΊΞ±ΞΉ στάσΡων προΡπιλογΞΟ‚ - Ξ±Ο…Ο„ΟŒ Ρίναι ΞΏ Ο‡ΟΟŒΞ½ΞΏΟ‚|
Weekday Start and Stop Times -<\/B> These are the custom times per day that can be set for the call time definition. same rules apply as with the Default start and stop times
|Χρόνοι έναρξης ΞΊΞ±ΞΉ στάσΡων Ρργάσιμης μέρας - αυτοί Ρίναι ΞΏΞΉ|
State Call Time Definitions -<\/B> This is the list of State specific call time definitions that are followed in this Call Time Definition
|Χρονικοί ορισμοί κρατικΞΟ‚ ΞΊΞ»Ξσης - Ξ±Ο…Ο„ΟŒ Ρίναι ΞΏ κατάλογος|
State Call Time State -<\/B> This is the two letter code for the state that this calling time definition is for. For this to be in effect the local call time that is set in the campaign must have this state call time record in it as well as all of the leads having two letter state codes in them
|Χρονικό κράτος κρατικΞΟ‚ ΞΊΞ»Ξσης - Ξ±Ο…Ο„ΟŒ Ρίναι ΞΏ ΞΊΟŽΞ΄ΞΉΞΊΞ±Ο‚ δύο|
Delete Call Times -<\/B> This option allows the user to be able to delete vicidial call times records and vicidial state call times records from the system
|Ξ”ΞΉΞ±Ξ³ΟΞ¬ΟˆΟ„Ξ΅ τους Ο‡ΟΟŒΞ½ΞΏΟ…Ο‚ ΞΊΞ»Ξσης - αυτΠη ΡπιλογΠΡπιτρέπΡι στο|
Modify Call Times -<\/B> This option allows the user to view and modify the call times and state call times records. A user doesn't need this option enabled if they only need to change the call times option on the campaigns screen
|΀ροποποιΞστΡ τους Ο‡ΟΟŒΞ½ΞΏΟ…Ο‚ ΞΊΞ»Ξσης - αυτΠη ΡπιλογΠΡπιτρέπΡι στο|
Wrapup Seconds -<\/B> The number of seconds to force an agent to wait before allowing them to receive or dial another call. The timer begins as soon as an agent hangs up on their customer - or in the case of alternate number dialing when the agent finishes the lead - Default is 0 seconds. If the timer runs out before the agent has dispositioned the call, the agent still will NOT move on to the next call until they select a disposition
|΀ο Wrapup υποστηρί΢Ρι - ΞΏ Ξ±ΟΞΉΞΈΞΌΟŒΟ‚ δΡυτΡρολέπτων Ξ³ΞΉΞ± Ξ½Ξ±|
Wrapup Message -<\/B> This is a campaign-specific message to be displayed on the wrapup screen if wrapup seconds is set
|ΜΞΞ½Ο…ΞΌΞ± Wrapup - Ξ±Ο…Ο„ΟŒ Ρίναι Ξ­Ξ½Ξ± ΡκστρατΡία-συγκΡκριμένο|
You are not authorized to view this page. Please go back
|ΔΡν ΡξουσιοδοτΡίστΡ Ξ³ΞΉΞ± Ξ½Ξ± δΡίτΡ Ξ±Ο…Ο„ΞΞ½ την σΡλίδα. Παρακαλώ|
Day and time options will appear once you have created the Call Time Definition
|Οι Ρπιλογές ημέρας ΞΊΞ±ΞΉ Ο‡ΟΟŒΞ½ΞΏΟ… ΞΈΞ± Ρμφανιστούν ΞΌΟŒΞ»ΞΉΟ‚ δημιουργΞσΡτΡ|
State Call Time ID, name and state must be at least 2 characters in length
|Ξ— Ο‡ΟΞΏΞ½ΞΉΞΊΞ Ο„Ξ±Ο…Ο„ΟŒΟ„Ξ·Ο„Ξ± κρατικΞΟ‚ ΞΊΞ»Ξσης, το όνομα ΞΊΞ±ΞΉ το κράτος|
Call Time ID and name must be at least 2 characters in length
|Ξ— Ο‡ΟΞΏΞ½ΞΉΞΊΞ Ο„Ξ±Ο…Ο„ΟŒΟ„Ξ·Ο„Ξ± ΞΊΞ»Ξσης ΞΊΞ±ΞΉ το όνομα πρέπΡι Ξ½Ξ± Ρίναι|
Active State Call Time Definitions for this Record
|Ενεργοί χρονικοί ορισμοί κρατικής κλήσης για αυτό το αρχείο|
there is already a call time entry with this ID
|υπάρχει ήδη μια χρονική είσοδος κλήσης με αυτήν την ταυτότητα|
CALL TIMES USING THIS STATE CALL TIME
|ΧΡΟΝΟΙ ΚΛΗΣΗΣ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΟΥΝ ΑΥΤΟΝ ΤΟΝ ΧΡΟΝΟ ΚΡΑΤΙΚΗΣ ΚΛΗΣΗΣ|
STATE CALL TIME DEFINITION NOT ADDED
|ΧΡΟΝΙΚΟΣ ΚΑΘΟΡΙΣΜΟΣ ΚΡΑΤΙΚΗΣ ΚΛΗΣΗΣ ΠΡΟΣΤΙΘΕΜΕΝΟΣ|
DELETE THIS STATE CALL TIME DEFINITION
|ΔΙΑΓΡΑΨΤΕ ΑΥΤΟΝ ΤΟΝ ΧΡΟΝΙΚΟ ΚΑΘΟΡΙΣΜΟ ΚΡΑΤΙΚΗΣ ΚΛΗΣΗΣ|
Modify Call Time State Definitions List
|Τροποποιήστε τον κατάλογο ορισμών χρονικού κράτους κλήσης|
CALL TIME DEFINITION NOT ADDED
|ΧΡΟΝΙΚΟΣ ΚΑΘΟΡΙΣΜΟΣ ΚΛΗΣΗΣ ΠΡΟΣΤΙΘΕΜΕΝΟΣ|
DELETE THIS CALL TIME DEFINITION
|ΔΙΑΓΡΑΨΤΕ ΑΥΤΟΝ ΤΟΝ ΧΡΟΝΙΚΟ ΚΑΘΟΡΙΣΜΟ ΚΛΗΣΗΣ|
short description of the call time
|σύντομη περιγραφή του χρόνου κλήσης|
CAMPAIGNS USING THIS CALL TIME
|ΕΚΣΤΡΑΤΕΙΕΣ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΟΥΝ ΑΥΤΟΝ ΤΟΝ ΧΡΟΝΟ ΚΛΗΣΗΣ|
STATE CALL TIME NOT MODIFIED
|ΧΡΟΝΟΣ ΚΡΑΤΙΚΗΣ ΚΛΗΣΗΣ ΤΡΟΠΟΠΟΙΗΜΕΝΟΣ|
CALL TIME NOT MODIFIED
|ΧΡΟΝΟΣ ΚΛΗΣΗΣ ΤΡΟΠΟΠΟΙΗΜΕΝΟΣ|
STATE CALL TIME MODIFIED
|ΧΡΟΝΟΣ ΚΡΑΤΙΚΗΣ ΚΛΗΣΗΣ ΤΡΟΠΟΠΟΙΗΜΕΝΟΣ|
CALL TIME MODIFIED
|ΧΡΟΝΟΣ ΚΛΗΣΗΣ ΤΡΟΠΟΠΟΙΗΜΕΝΟΣ|
Default Start:
|Έναρξη προεπιλογής:|
Default Stop:
|Στάση προεπιλογής:|
Sunday Start:
|Έναρξη της Κυριακής:|
Sunday Stop:
|Στάση της Κυριακής:|
Monday Start:
|Έναρξη Δευτέρας:|
Monday Stop:
|Στάση Δευτέρας:|
Tuesday Start:
|Έναρξη Τρίτης:|
Tuesday Stop:
|Στάση Τρίτης:|
Wednesday Start:
|Έναρξη Τετάρτης:|
Wednesday Stop:
|Στάση Τετάρτης:|
Thursday Start:
|Έναρξη Πέμπτης:|
Thursday Stop:
|Στάση Πέμπτης:|
Friday Start:
|Έναρξη Παρασκευής:|
Friday Stop:
|Στάση Παρασκευής:|
Saturday Start:
|Έναρξη Σαββάτου:|
Saturday Stop:
|Στάση Σαββάτου:|
State Rule Added
|Κρατικός κανόνας προστιθέμενος|
State Rule Removed
|Κρατικός κανόνας αιρόμενος|
STATE CALL TIME LISTINGS
|ΧΡΟΝΙΚΕΣ ΛΙΣΤΕΣ ΚΡΑΤΙΚΗΣ ΚΛΗΣΗΣ|
CALL TIME LISTINGS
|ΧΡΟΝΙΚΕΣ ΛΙΣΤΕΣ ΚΛΗΣΗΣ|
STATE CALL TIME ADDED
|ΧΡΟΝΟΣ ΚΡΑΤΙΚΗΣ ΚΛΗΣΗΣ ΠΡΟΣΤΙΘΕΜΕΝΟΣ|
CALL TIME ADDED
|ΧΡΟΝΟΣ ΚΛΗΣΗΣ ΠΡΟΣΤΙΘΕΜΕΝΟΣ|
Drop Call Seconds
|Δευτερόλεπτα κλήσης πτώσης|
Use Safe Harbor Message
|Ασφαλές λιμενικό μήνυμα χρήσης|
Safe Harbor Exten
|Ασφαλές λιμάνι Exten|
Use Drop Message
|Μήνυμα πτώσης χρήσης|
Drop Exten
|Πτώση Exten|
SIP Listen Version
|Η ΓΟΥΛΙΑ ακούει έκδοση|
Add New Call Time
|Προσθέστε το νέο χρόνο κλήσης|
Add New State Call Time
|Προσθέστε το νέο χρόνο κρατικής κλήσης|
New Call Time Addition
|Νέα χρονική προσθήκη κλήσης|
New State Call Time Addition
|Νέα χρονική προσθήκη κρατικής κλήσης|
Modify Call Time
|Τροποποιήστε το χρόνο κλήσης|
MODIFY A CALL TIME
|ΤΡΟΠΟΠΟΙΗΣΤΕ έναν ΧΡΟΝΟ ΚΛΗΣΗΣ|
Modify State Call Time
|Τροποποιήστε το χρόνο κρατικής κλήσης|
MODIFY A STATE CALL TIME
|ΤΡΟΠΟΠΟΙΗΣΤΕ έναν ΧΡΟΝΟ ΚΡΑΤΙΚΗΣ ΚΛΗΣΗΣ|
Delete Call Time
|Διαγράψτε το χρόνο κλήσης|
Delete State Call Time
|Διαγράψτε το χρόνο κρατικής κλήσης|
State Call Times
|Χρόνοι κρατικής κλήσης|
State Call Time ID
|Χρονική ταυτότητα κρατικής κλήσης|
State Call Time Name
|Χρονικό όνομα κρατικής κλήσης|
State Call Time Comments
|Χρονικά σχόλια κρατικής κλήσης|
STATE CALL TIME NOT DELETED
|ΧΡΟΝΟΣ ΚΡΑΤΙΚΗΣ ΚΛΗΣΗΣ ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ|
CALL TIME DELETION COMPLETED
|ΧΡΟΝΙΚΗ ΔΙΑΓΡΑΦΗ ΚΛΗΣΗΣ ΠΟΥ ΟΛΟΚΛΗΡΩΝΕΤΑΙ|
STATE CALL TIME DELETION COMPLETED
|ΧΡΟΝΙΚΗ ΔΙΑΓΡΑΦΗ ΚΡΑΤΙΚΗΣ ΚΛΗΣΗΣ ΠΟΥ ΟΛΟΚΛΗΡΩΝΕΤΑΙ|
CALL TIME NOT DELETED
|ΧΡΟΝΟΣ ΚΛΗΣΗΣ ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ|
Call Time ID must be at least 2 characters in length
|Ξ— Ο‡ΟΞΏΞ½ΞΉΞΊΞ Ο„Ξ±Ο…Ο„ΟŒΟ„Ξ·Ο„Ξ± ΞΊΞ»Ξσης πρέπΡι Ξ½Ξ± Ρίναι τουλάχιστον 2|
STATE CALL TIME DELETION CONFIRMATION
|ΕΠΙΒΕΒΑΙΩΣΗ ΧΡΟΝΙΚΗΣ ΔΙΑΓΡΑΦΗΣ ΚΡΑΤΙΚΗΣ ΚΛΗΣΗΣ|
CALL TIME DELETION CONFIRMATION
|ΕΠΙΒΕΒΑΙΩΣΗ ΧΡΟΝΙΚΗΣ ΔΙΑΓΡΑΦΗΣ ΚΛΗΣΗΣ|
Call Times
|Χρόνοι κλήσης|
CALL TIMES
|ΧΡΟΝΟΙ ΚΛΗΣΗΣ|
SHOW CALL TIMES
|ΠΑΡΟΥΣΙΑΣΤΕ ΧΡΟΝΟΥΣ ΚΛΗΣΗΣ|
ADD NEW CALL TIME
|ΠΡΟΣΘΕΣΤΕ ΤΟ ΝΕΟ ΧΡΟΝΟ ΚΛΗΣΗΣ|
SHOW STATE CALL TIMES
|ΠΑΡΟΥΣΙΑΣΤΕ ΧΡΟΝΟΥΣ ΚΡΑΤΙΚΗΣ ΚΛΗΣΗΣ|
ADD NEW STATE CALL TIME
|ΠΡΟΣΘΕΣΤΕ ΤΟ ΝΕΟ ΧΡΟΝΟ ΚΡΑΤΙΚΗΣ ΚΛΗΣΗΣ|
Call Time ID
|Χρονική ταυτότητα κλήσης|
Call Time Name
|Χρονικό όνομα κλήσης|
Call Time Comments
|Χρονικά σχόλια κλήσης|
short description of the call time
|σύντομη περιγραφή του χρόνου κλήσης|
HIDE
|ΔΟΡΑ|
SHOW
|ΠΑΡΟΥΣΙΑΣΤΕ|
Show Dialable Leads Count
|Παρουσιάστε αρίθμηση μολύβδων Dialable|
Dialable Lead Count
|Αρίθμηση μολύβδου Dialable|
TEST ON CAMPAIGN
|ΔΟΚΙΜΗ ΣΤΗΝ ΕΚΣΤΡΑΤΕΙΑ|
Wrapup Seconds:
|Δευτερόλεπτα Wrapup:|
Wrapup Message:
|Μήνυμα Wrapup:|
Alt Number Dialing
|Σχηματισμός αριθμού ALT|
no active lists selected for this campaign
|ΞΊΞ±Ξ½Ξ­Ξ½Ξ±Ο‚ κατάλογος που ΡπιλέγΡται Ξ΅Ξ½Ξ΅ΟΞ³ΟŒΟ‚ Ξ³ΞΉΞ± Ξ±Ο…Ο„ΞΞ½ την|
Realtime Screen
|Σε πραγματικό χρόνο οθόνη|
Search Existing Leads
|Υπάρχοντες μόλυβδοι αναζήτησης|
This option if checked will attempt to find the phone number in the system before inserting it as a new lead
|ΑυτΠη ΡπιλογΠΡάν ΡλέγχΡται ΞΈΞ± προσπαθΞσΡι Ξ½Ξ± βρΡί τον|
Finish Wrapup and Move On
|Τελειώστε Wrapup και προχωρήστε|
seconds remaining in wrapup
|δευτερόλεπτα που παραμένουν στο wrapup|
Call Wrapup:
|Κλήση Wrapup:|
@@ -0,0 +1,127 @@
?Drop Call Seconds -<\/B> The number of seconds from the time the customer line is picked up until the call is considered a DROP, only applies to outbound calls
|Segundos de la llamada de la gota - el nΓΊmero de segundos a partir|
Safe Harbor Message -<\/B> If set to Y will play a message to customer after the Drop Call Seconds timeout is reached without being transferred to an agent. This setting will override sending to a voicemail box if this is set to Y
|Mensaje seguro del puerto - si el sistema a Y juega un mensaje al|
Safe Harbor Exten -<\/B> This is the dialplan extension that the desired Safe Harbor audio file is located at on your server
|Puerto seguro Exten - Γ©sta es la extensiΓ³n dialplan que el archivo|
Drop Message -<\/B> If set to Y will play a message to customer after the Drop Call Seconds timeout is reached without being transferred to an agent. This setting will override sending to a voicemail box if this is set to Y
|Mensaje de la gota - si el sistema a Y juega un mensaje al cliente|
Drop Exten -<\/B> This is the dialplan extension that the desired Dropped call audio file is located at on your server
|Gota Exten - Γ©sta es la extensiΓ³n dialplan que el archivo audio|
Call Time ID -<\/B> This is the short name of a Vicidial Call Time Definition. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 10 characters, minimum of 2 characters
|IdentificaciΓ³n del tiempo de la llamada - Γ©ste es el nombre corto de|
Call Time Name -<\/B> This is a more descriptive name of the Call Time Definition. This is a short summary of the Call Time definition. max 30 characters, minimum of 2 characters
|Nombre del tiempo de la llamada - Γ©ste es un nombre mΓ‘s descriptivo|
Call Time Comments -<\/B> This is where you can place comments for a Vicidial Call Time Definition such as -10am to 4pm with extra call state restrictions-. max 255 characters
|El tiempo de la llamada comenta - aquΓ­ es donde usted puede poner los|
Default Start and Stop Times -<\/B> This is the default time that calling will be allowed to be started or stopped within this call time definition if the day-of-the-week start time is not defined. 0 is midnight. To prevent calling completely set this field to 2400 and set the Default Stop time to 2400. To allow calling 24 hours a day set the start time to 0 and the stop time to 2400
|Tiempos del comienzo y de parada del defecto - Γ©ste es el tiempo de|
Weekday Start and Stop Times -<\/B> These are the custom times per day that can be set for the call time definition. same rules apply as with the Default start and stop times
|Tiempos del comienzo y de parada del dΓ­a laborable - Γ©stos son los|
State Call Time Definitions -<\/B> This is the list of State specific call time definitions that are followed in this Call Time Definition
|Definiciones del tiempo de la llamada del estado - Γ©sta es la lista|
State Call Time State -<\/B> This is the two letter code for the state that this calling time definition is for. For this to be in effect the local call time that is set in the campaign must have this state call time record in it as well as all of the leads having two letter state codes in them
|Estado del tiempo de la llamada del estado - Γ©ste es el cΓ³digo de|
Delete Call Times -<\/B> This option allows the user to be able to delete vicidial call times records and vicidial state call times records from the system
|Tiempos de la llamada de la cancelaciΓ³n - esta opciΓ³n permite que el|
Modify Call Times -<\/B> This option allows the user to view and modify the call times and state call times records. A user doesn't need this option enabled if they only need to change the call times option on the campaigns screen
|Modifique los tiempos de la llamada - esta opciΓ³n permite que el|
Wrapup Seconds -<\/B> The number of seconds to force an agent to wait before allowing them to receive or dial another call. The timer begins as soon as an agent hangs up on their customer - or in the case of alternate number dialing when the agent finishes the lead - Default is 0 seconds. If the timer runs out before the agent has dispositioned the call, the agent still will NOT move on to the next call until they select a disposition
|Segundos de Wrapup - el nΓΊmero de los segundos para forzar un agente|
Wrapup Message -<\/B> This is a campaign-specific message to be displayed on the wrapup screen if wrapup seconds is set
|Mensaje de Wrapup - esto es un mensaje campaΓ±a-especi'fico que se|
You are not authorized to view this page. Please go back
|Le no autorizan a visión esta página. Vaya por favor detrás|
Day and time options will appear once you have created the Call Time Definition
|Las opciones del dΓ­a y del tiempo aparecerΓ‘n una vez que usted haya|
State Call Time ID, name and state must be at least 2 characters in length
|Indique que identificaciΓ³n del tiempo de la llamada, nombre y estado|
Call Time ID and name must be at least 2 characters in length
|La identificaciΓ³n del tiempo de la llamada y el nombre deben ser por|
Active State Call Time Definitions for this Record
|Definiciones activas del tiempo de la llamada del estado para esto|
there is already a call time entry with this ID
|hay ya una entrada de tiempo de la llamada con esta identificación|
CALL TIMES USING THIS STATE CALL TIME
|TIEMPOS DE LA LLAMADA USANDO ESTE TIEMPO DE LA LLAMADA DEL ESTADO|
STATE CALL TIME DEFINITION NOT ADDED|DEFINICIÓN DEL TIEMPO DE LA LLAMADA DEL ESTADO NO AGREGADA|
DELETE THIS STATE CALL TIME DEFINITION|SUPRIMA ESTA DEFINICIÓN DEL TIEMPO DE LA LLAMADA DEL ESTADO|
Modify Call Time State Definitions List|Modifique La Lista De las Definiciones Del Estado Del Tiempo De la|
CALL TIME DEFINITION NOT ADDED|DEFINICIÓN DEL TIEMPO DE LA LLAMADA NO AGREGADA|
DELETE THIS CALL TIME DEFINITION|SUPRIMA ESTA DEFINICIÓN DEL TIEMPO DE LA LLAMADA|
short description of the call time|descripción corta del tiempo de la llamada|
CAMPAIGNS USING THIS CALL TIME|CAMPAÑAS USANDO ESTE TIEMPO DE LA LLAMADA|
STATE CALL TIME NOT MODIFIED|TIEMPO DE LA LLAMADA DEL ESTADO NO MODIFICADO|
CALL TIME NOT MODIFIED|TIEMPO DE LA LLAMADA NO MODIFICADO|
STATE CALL TIME MODIFIED|TIEMPO DE LA LLAMADA DEL ESTADO MODIFICADO|
CALL TIME MODIFIED|EL TIEMPO DE LA LLAMADA SE MODIFICÓ|
Default Start:|Comienzo Del Defecto:|
Default Stop:|Parada Del Defecto:|
Sunday Start:|Comienzo De Domingo:|
Sunday Stop:|Parada De Domingo:|
Monday Start:|Comienzo De Lunes:|
Monday Stop:|Parada De Lunes:|
Tuesday Start:|Comienzo De Martes:|
Tuesday Stop:|Parada De Martes:|
Wednesday Start:|Comienzo De Miércoles:|
Wednesday Stop:|Parada De Miércoles:|
Thursday Start:|Comienzo De Jueves:|
Thursday Stop:|Parada De Jueves:|
Friday Start:|Comienzo De Viernes:|
Friday Stop:|Parada De Viernes:|
Saturday Start:|Comienzo De Sábado:|
Saturday Stop:|Parada De Sábado:|
State Rule Added|Regla Del Estado Agregada|
State Rule Removed|La Regla Del Estado Quitó|
STATE CALL TIME LISTINGS|LISTADOS DEL TIEMPO DE LA LLAMADA DEL ESTADO|
CALL TIME LISTINGS|LISTADOS DEL TIEMPO DE LA LLAMADA|
STATE CALL TIME ADDED|EL TIEMPO DE LA LLAMADA DEL ESTADO AGREGÓ|
CALL TIME ADDED|EL TIEMPO DE LA LLAMADA AGREGÓ|
Drop Call Seconds|Segundos De la Llamada De la Gota|
Use Safe Harbor Message|Utilice El Mensaje Seguro Del Puerto|
Safe Harbor Exten|Puerto Seguro Exten|
Use Drop Message|Utilice El Mensaje De la Gota|
Drop Exten|Gota Exten|
SIP Listen Version|El Sip Escucha Versión|
Add New Call Time|Agregue El Nuevo Tiempo De la Llamada|
Add New State Call Time|Agregue El Nuevo Tiempo De la Llamada Del Estado|
New Call Time Addition|Nueva Adición Del Tiempo De la Llamada|
New State Call Time Addition|Nueva Adición Del Tiempo De la Llamada Del Estado|
Modify Call Time|Modifique El Tiempo De la Llamada|
MODIFY A CALL TIME|MODIFIQUE Un RATO De la LLAMADA|
Modify State Call Time|Modifique El Tiempo De la Llamada Del Estado|
MODIFY A STATE CALL TIME|MODIFIQUE Un RATO De la LLAMADA Del ESTADO|
Delete Call Time|Tiempo De la Llamada De la Cancelación|
Delete State Call Time|Tiempo De la Llamada Del Estado De la Cancelación|
State Call Times|Tiempos De la Llamada Del Estado|
State Call Time ID|Identificación Del Tiempo De la Llamada Del Estado|
State Call Time Name|Nombre Del Tiempo De la Llamada Del Estado|
State Call Time Comments|Comentarios Del Tiempo De la Llamada Del Estado|
STATE CALL TIME NOT DELETED|TIEMPO DE LA LLAMADA DEL ESTADO NO SUPRIMIDO|
CALL TIME DELETION COMPLETED|CANCELADURA DEL TIEMPO DE LA LLAMADA TERMINADA|
STATE CALL TIME DELETION COMPLETED|CANCELADURA DEL TIEMPO DE LA LLAMADA DEL ESTADO TERMINADA|
CALL TIME NOT DELETED|TIEMPO DE LA LLAMADA NO SUPRIMIDO|
Call Time ID must be at least 2 characters in length|La identificaciΓ³n del tiempo de la llamada debe ser por lo menos 2|
STATE CALL TIME DELETION CONFIRMATION|CONFIRMACIÓN DE LA CANCELADURA DEL TIEMPO DE LA LLAMADA DEL ESTADO|
CALL TIME DELETION CONFIRMATION|CONFIRMACIÓN DE LA CANCELADURA DEL TIEMPO DE LA LLAMADA|
Call Times|Tiempos De la Llamada|
CALL TIMES|TIEMPOS DE LA LLAMADA|
SHOW CALL TIMES|DEMUESTRE LOS TIEMPOS DE LA LLAMADA|
ADD NEW CALL TIME|AGREGUE EL NUEVO TIEMPO DE LA LLAMADA|
SHOW STATE CALL TIMES|DEMUESTRE LOS TIEMPOS DE LA LLAMADA DEL ESTADO|
ADD NEW STATE CALL TIME|AGREGUE EL NUEVO TIEMPO DE LA LLAMADA DEL ESTADO|
Call Time ID|Identificación Del Tiempo De la Llamada|
Call Time Name|Nombre Del Tiempo De la Llamada|
Call Time Comments|Comentarios Del Tiempo De la Llamada|
short description of the call time|descripción corta del tiempo de la llamada|
HIDE|PIEL|
SHOW|DEMOSTRACIÓN|
Show Dialable Leads Count|Demuestre La Cuenta De los Plomos De Dialable|
Dialable Lead Count|Cuenta Del Plomo De Dialable|
TEST ON CAMPAIGN|PRUEBE EN CAMPAÑA|
Wrapup Seconds:|Segundos De Wrapup:|
Wrapup Message:|Mensaje De Wrapup:|
Alt Number Dialing|El Marcar Del Número Del Alt|
no active lists selected for this campaign|ningunas listas activas seleccionadas para esta campaña|
Realtime Screen|Pantalla En tiempo real|
@@ -0,0 +1,10 @@
?Search Existing Leads
|Fils Existants De Recherche|
This option if checked will attempt to find the phone number in the system before inserting it as a new lead
|Cette option si vΓ©rifiΓ© essayera de trouver le numΓ©ro de|
Finish Wrapup and Move On
|Finition Wrapup et passer|
seconds remaining in wrapup
|secondes restantes dans le wrapup|
Call Wrapup:
|Appel Wrapup :|
@@ -0,0 +1,10 @@
?Search Existing Leads
|Cavi Esistenti Di Ricerca|
This option if checked will attempt to find the phone number in the system before inserting it as a new lead
|Questa opzione se controllato tenterΓ  di trovare il numero di|
Finish Wrapup and Move On
|Rivestimento Wrapup e pass|
seconds remaining in wrapup
|secondi restanti nel wrapup|
Call Wrapup:
|Chiamata Wrapup:|
@@ -0,0 +1,10 @@
?Search Existing Leads
|Ligações Existentes Da Busca|
This option if checked will attempt to find the phone number in the system before inserting it as a new lead
|Esta opΓ§Γ£o se verificado tentarΓ‘ encontrar o nΓΊmero de telefone no|
Finish Wrapup and Move On
|Revestimento Wrapup e movimento sobre|
seconds remaining in wrapup
|segundos restantes no wrapup|
Call Wrapup:
|Chamada Wrapup:|
-4
View File
@@ -138,7 +138,3 @@ index (campaign_id)
ALTER TABLE vicidial_list MODIFY called_since_last_reset ENUM('Y','N','Y1','Y2','Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10') default 'N'; ALTER TABLE vicidial_list MODIFY called_since_last_reset ENUM('Y','N','Y1','Y2','Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10') default 'N';
ALTER TABLE servers MODIFY local_gmt VARCHAR(5) default '-5'; ALTER TABLE servers MODIFY local_gmt VARCHAR(5) default '-5';